AndFix热修复问题

时隔两周迟迟没有新的产出实在内疚,怪AndFix咯,这样至少还能得到一丢丢安慰。在前面一篇《AndFix热修复实现》之后本以为已是太平盛世了,熟知测试上出现了问题,真机测试途中发现HTC6.0.1与MEIZU5.1居然在热修复替换clazz_new意外崩溃了,“阿狸,说好的兼容2.0~6.0呢”?百度上逗留了好久,大部分都指明是>6.0权限问题,需要在代码中动态申请权限(如下demo所示),但小编断点后发现判定权限是否添加的结果都是可执行的,并没有提示需要授予相关权限,当然前提已经在注册表里写过权限声明的了,这个有兴趣的亲可以深入了解下。

动态申请权限

final private int REQUEST_CODE_ASK_PERMISSIONS = 123;

private void insertDummyContactWrapper() {
    int hasWriteContactsPermission = ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_CONTACTS);
    if (hasWriteContactsPermission != PackageManager.PERMISSION_GRANTED) {
        if (!ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_CONTACTS)) {
            showMessageOKCancel("You need to allow access to Contacts",
                    new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.WRITE_CONTACTS}, REQUEST_CODE_ASK_PERMISSIONS);
                        }
                    });
            return;
        }
        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_CONTACTS}, REQUEST_CODE_ASK_PERMISSIONS);
        return;
    }
    ActivityCompat.requestPermissions(this,
            new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
            REQUEST_CODE_ASK_PERMISSIONS);
}

private void showMessageOKCancel(String message, DialogInterface.OnClickListener okListener) {
    new AlertDialog.Builder(this)
            .setMessage(message)
            .setPositiveButton("OK", okListener)
            .setNegativeButton("Cancel", null)
            .create()
            .show();
}

热修复问题 java.lang.UnsatisfiedLinkError

  • method not found: com.alipay.euler.andfix.AndFix.setup:(ZI)Z
  • No implementation found for boolean com.alipay.euler.andfix.AndFix.setup(boolean,int) (tried Java_com_alipay_euler_andfix_AndFix_setup and Java_com_alipay_euler_andfix_AndFix_setup__ZI)

出现以上两种log情况,我们需要将线上demo中lib提供的.os文件导入到jniLibs目录下。


热修复问题 Fatal signal 11 (SIGSEGV)

(该问题求解)从网上寻求答案大都是说与手机内存相关(不同SDK版本),或是与调用JNI函数的指针相关。这里仅提出问题寻求解决方案,或等AndFix完善使用再跟进。下面是异常位置以及log日志。

====Fatal signal 11 (SIGSEGV) at 0x000000000 (code=1), thread 5761====

时间: 2024-08-03 13:09:15

AndFix热修复问题的相关文章

Andfix热修复框架原理及源码解析-上篇

热补丁介绍及Andfix的使用 Andfix热修复框架原理及源码解析-上篇 Andfix热修复框架原理及源码解析-下篇 1.不知道如何使用的同学,建议看看我上一篇写的介绍热补丁和Andfix的使用,这样你才有一个大概的框架.通过使用Andfix,其实我们心中会有一个大概的轮廓,它的工作原理,大概就是,所谓的补丁文件,就是通过打包工具apkpatch比对新的apk和旧的apk之间的差异.然后让我们的旧包运行的时候,就加载它,把以前的一些信息替换掉.我们现在就抱着这个大方向去深入源码探个究竟!!首先

Andfix热修复框架原理及源码解析-下篇

热补丁介绍及Andfix的使用 Andfix热修复框架原理及源码解析-上篇 Andfix热修复框架原理及源码解析-下篇 如果没有看过上篇的建议从上篇看起.先大概回忆下,上一篇分析了mPatchManager.init("1.0"),addPatch()方法.还有通过分析打补丁工具,了解补丁文件是怎么生成的.下面就来讲讲我们如何去读它.思绪回到Application的loadPatch()方法. 这个方法就是遍历mPatchs,就是上篇介绍的存储patch的一个集合.根据补丁名找到对应的

阿里 AndFix 热修复框架简介

阿里AndFix热修复框架简介 热修复原理: Android的类加载机制 Android的类加载器分为两种,PathClassLoader和DexClassLoader,两者都继承自BaseDexClassLoader PathClassLoader代码位于libcore\dalvik\src\main\Java\dalvik\system\PathClassLoader.java DexClassLoader代码位于libcore\dalvik\src\main\java\dalvik\sys

Andfix热修复框架原理及源代码解析-上篇

热补丁介绍及Andfix的使用 Andfix热修复框架原理及源代码解析-上篇 Andfix热修复框架原理及源代码解析-下篇 1.不知道怎样使用的同学,建议看看我上一篇写的介绍热补丁和Andfix的使用,这样你才有一个大概的框架.通过使用Andfix,事实上我们心中会有一个大概的轮廓,它的工作原理,大概就是.所谓的补丁文件.就是通过打包工具apkpatch比对新的apk和旧的apk之间的差异. 然后让我们的旧包执行的时候.就载入它,把曾经的一些信息替换掉. 我们如今就抱着这个慷慨向去深入源代码探个

AndFix热修复 —— 实战与源码解析

转载请注明:http://www.cnblogs.com/soaringEveryday/p/5338214.html 当你的应用发布后第二天却发现一个重要的bug要修复,头疼的同时你可能想着赶紧修复重新打个包发布出去,让用户收到自动更新重新下载.但是万事皆有可能,万一隔一天又发现一个急需修复的bug呢?难道再次发布打扰用户一次? 这个时候就是热修复技术该登场的时候了,它可以让你在无需发布新版本的前提下修复小范围的问题.最近研究了下几个热修复的开源框架,其中Nuwa等框架的原理是修改了gradl

android--------阿里 AndFix 热修复

AndFix,全称是Android hot-fix.是阿里开源的一个热补丁框架,允许APP在不重新发布版本的情况下修复线上的bug. 支持Android 2.3 到 6.0,并且支持arm 与 X86系统架构的设备.完美支持Dalvik与ART的Runtime,补丁文件是以 .apatch 结尾的文件. 原理 AndFix的原理就是方法的替换,把有bug的方法替换成补丁文件中的方法: 直接在native层进行方法的结构体信息对换,从而实现完美的方法新旧替换,从而实现热修复功能. 添加依赖和混淆

Andfix热修复原理

一.前言 最近腾讯弄出一个Tinker热修复框架,那么本文先不介绍这个框架,先来介绍一下阿里的一个热修复框架AndFix,这个框架出来已经很长时间了,但是看网上没有太多非常详细的讲解,这里就来做一次分析.正好项目中要使用到.首先这个框架是开源的:https://github.com/alibaba/AndFix 其实在最早的时候我已经分析了阿里的另外一个热修复框架:Dexposed框架,还不了解的同学可以点击这里查看:Dexposed框架原理解析以及使用 当时介绍这个框架的时候发现他的实现原理很

AndFix 热修复

github:https://github.com/alibaba/AndFix 添加依赖包 dependencies { compile 'com.alipay.euler:andfix:[email protected]' } 初始化代码 // 初始化patch管理类 PatchManager patchManager = new PatchManager(context); // 初始化patch版本 patchManager.init("1.0"); // 加载已经添加到Pat

安卓热修复之AndFIX

我致力于最新的前沿安卓技术分析和使用教学,不打算将很多很深的东西,因为有多少人愿意沉下你的心境去学习难点?我一般只会简单提及.文字错漏在所难免还希望同学们喜欢 热修复介绍 热修复是什么? 如果你一个项目已经上线,出现了严重缺陷,那么你第一反应是推送新版本.那么问题来.老子刚下你的APP 你就叫我重新下载?啥东西!卸了.从而导致用户流量的减退.而热修复就是推送一个补丁文件到客户端(很小),用户打开应用时自动安装.是不是很棒? AndFix 热修复原理 已经翻译的源码分析 阿里github官网(英文