异常类型:app运行时异常

手机型号:sumsung N9008

手机系统版本:android4.4.2

tinker版本: 1.8.1

gradle版本::2.3.3

是否使用热更新SDK: TinkerPatch SDK

系统:如:windows

堆栈/日志:
java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
10-20 17:26:33.541 27601-27601/? W/System.err: at com.xx.xx.c.a.d.(Unknown Source)
10-20 17:26:33.541 27601-27601/? W/System.err: at com.xx.xx.c.a.d.a(Unknown Source)
10-20 17:26:33.541 27601-27601/? W/System.err: at com.xx.xx.c.b.(Unknown Source)
10-20 17:26:33.541 27601-27601/? W/System.err: at com.xx.xx.c.b.a(Unknown Source)
10-20 17:26:33.541 27601-27601/? W/System.err: at com.xx.xx.ApplicationMy.onCreate(Unknown Source)
10-20 17:26:33.541 27601-27601/? W/System.err: at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1025)
10-20 17:26:33.541 27601-27601/? W/System.err: at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4551)
10-20 17:26:33.541 27601-27601/? W/System.err: at android.app.ActivityThread.access$1500(ActivityThread.java:163)
10-20 17:26:33.541 27601-27601/? W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1317)
10-20 17:26:33.541 27601-27601/? W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102)
10-20 17:26:33.541 27601-27601/? W/System.err: at android.os.Looper.loop(Looper.java:157)
10-20 17:26:33.541 27601-27601/? W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5335)
10-20 17:26:33.541 27601-27601/? W/System.err: at java.lang.reflect.Method.invokeNative(Native Method)
10-20 17:26:33.541 27601-27601/? W/System.err: at java.lang.reflect.Method.invoke(Method.java:515)
10-20 17:26:33.541 27601-27601/? W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
10-20 17:26:33.541 27601-27601/? W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
10-20 17:26:33.541 27601-27601/? W/System.err: at dalvik.system.NativeStart.main(Native Method)
10-20 17:26:33.541 27601-27601/? E/Debug Message - > >: 崩溃时间:2017-10-20 17:26:33
10-20 17:26:33.541 27601-27601/? E/Debug Message - > >: 崩溃简短信息:Class ref in pre-verified class resolved to unexpected implementation
10-20 17:26:33.541 27601-27601/? E/Debug Message - > >: 崩溃原因:null
10-20 17:26:33.541 27601-27601/? E/Debug Message - > >: 崩溃线程名称:main崩溃线程ID:1
10-20 17:26:33.551 27601-27615/? E/File: fail readDirectory() errno=13

出现上述问题后一头雾水,通过log根本没有啥有用的信息,去gitHub官网上查了查有类似的问题:

https://github.com/Tencent/tinker/issues/491

https://github.com/Tencent/tinker/issues/151

结合接入指南分析:https://github.com/Tencent/tinker/wiki/Tinker-%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D%97

常见问题:https://github.com/Tencent/tinker/wiki/Tinker-%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98  (什么类需要放在主dex中)

后得出一个猜测,可能是分包的时候一些关键类没有在main dex中,(上边问题491中有描述:注意把rxjava相关的类全部分到同一个dex(不一定要在主dex)就可以了。)

同时接入指南中也提到了dex的keep规则

结论:所以从tinkerpatch-sample-master (https://github.com/Tencent/tinker/tree/master/tinker-sample-android)项目中拷贝

proguardRules.pro 修改SampleApplication为自己的applaction类

tinkerMultidexKeep.pro修改SampleApplication为自己的applaction类

到自己的项目中,syn now gradle配置文件,rebuild项目;重新打patch,大功告成

注:1.此问题和application是否继承DefaultApplicationLike无关

  2.遇到问题:Android Studio: GC overhead limit exceeded

  解决:点击 Help > Edit Custom VM Options 以打开您的 studio.vmoptions 文件。

    填写:

    -Xms256m
    -Xmx3080m
    -XX:MaxPermSize=350m
    -XX:ReservedCodeCacheSize=225m
    -XX:+UseCompressedOops

    参见:https://stackoverflow.com/questions/35034830/android-studio-gc-overhead-limit-exceeded

  3.出现该问题的原理:http://blog.csdn.net/u010386612/article/details/51077291

   概述一下就是,dex1中的class引用了dex2中的class,导致校验失败

  4.参见:https://mp.weixin.qq.com/s?__biz=MzI1MTA1MzM2Nw==&mid=400118620&idx=1&sn=b4fdd5055731290eef12ad0d17f39d4a&scene=1&srcid=1031x2ljgSF4xJGlH1xMCJxO&uin=MjAyNzY1NTU=&key=04dce534b3b035ef58d8714d714d36bcc6cc7e136bbd64850522b491d143aafceb62c46421c5965e18876433791d16ec&devicetype=iMac%20MacBookPro12,1%20OSX%20OSX%2010.10.5%20build%2814F27%29&version=11020201&lang=zh_CN&pass_ticket=7O/VfztuLjqu23ED2WEkvy1SJstQD4eLRqX%2b%2bbCY3uE=

Tencent tinker 出现pre-verified crash的更多相关文章

  1. 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新

    [原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...

  2. 【腾讯Bugly干货分享】微信Tinker的一切都在这里,包括源码(一)

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57ecdf2d98250b4631ae034b 最近半年以来,Android热补 ...

  3. 微信 Tinker 的一切都在这里,包括源码

    最近半年以来,Android热补丁技术热潮继续爆发,各大公司相继推出自己的开源框架.Tinker在最近也顺利完成了公司的审核,并非常荣幸的成为github.com/Tencent上第一个正式公开的项目 ...

  4. 微信开源的Android热补丁框架 Tinker

    前不久,微信开源了其Android热补丁框架Tinker,它的特别之处在于放在github.com/Tencent下面,是该账号下第一个正式的开源项目,可以看到腾讯对它的重视和认可. 早在6月份微信客 ...

  5. 微信Tinker的一切都在这里,包括源码(一)

    版权声明:本文由张绍文原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/101 来源:腾云阁 https://www.qclo ...

  6. Tinker爬坑之路

    目的 热修复去年年底出的时候,变成了今年最火的技术之一.依旧记得去年面试的时候统一的MVP,然而今年却变成了RN,热修复.这不得不导致我们需要随时掌握最新的技术.不然可能随时会被淘汰.记得刚进公司,技 ...

  7. 热修复框架Tinker的从0到集成之路(转)

    转自:http://blog.csdn.net/lisdye2/article/details/54411727 热修复框架Tinker的从0到集成之路 转载请标明出处: http://blog.cs ...

  8. 热修复框架Tinker快速集成

    由于腾讯官方的demo对于刚接触的我来说,太过复杂,找不到核心配置,因此将tinker集成中最核心的东西抽取出来,整合到一个demo中. demo工程已经提交到github上,点击跳转 更多使用方法, ...

  9. 热修复-Tinker

    微信开源,真是喜出望外,必须要去看看啊,比起nuwa来微信好很多,而且github上也有专门的官方文档说明,还有很多资料查询 参考地址:https://github.com/Tencent/tinke ...

随机推荐

  1. nsis源码 nsisdialogdesigner

    ; 安装程序初始定义常量!define PRODUCT_NAME "nsisdialogdesigner"!define PRODUCT_VERSION "1.1.3&q ...

  2. Job流程:提交MR-Job过程

    1.一个标准 MR-Job 的执行入口: //参数 true 表示检查并打印 Job 和 Task 的运行状况 System.exit(job.waitForCompletion(true) ? 0 ...

  3. parted 分区

    Linux下的GPT分区 GPT分区 这是另外一种分区,针对MBR分区,它有很多优点: (1)几乎突破了分区个数的限制. 在GPT分区表中最多可以支持128个主分区. (2)单个分区容量几乎没有限制. ...

  4. 【网络结构】MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications论文解析

    目录 0. Paper link 1. Overview 2. Depthwise Separable Convolution 2.1 architecture 2.2 computational c ...

  5. ubuntu16.04后续工作

    一.ruijie https://blog.csdn.net/u012217085/article/details/24369335 https://blog.csdn.net/Lv_Victor/a ...

  6. 2017 ACM/ICPC Asia 南宁区 L The Heaviest Non-decreasing Subsequence Problem

    2017-09-24 20:15:22 writer:pprp 题目链接:https://nanti.jisuanke.com/t/17319 题意:给你一串数,给你一个处理方法,确定出这串数的权值, ...

  7. C# DES加密,KEY和IV不同设置的写法

    1.KEY和IV分别赋值 //默认密钥向量 private static byte[] Iv= { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF }; ...

  8. RocketMQ 自己的整理和理解

    每个人的想法不同, RocketMQ 介绍的时候就说 是阿里从他们使用的上 解耦出来 近一步简化 便捷的 目的当然是 让其能快速入手和开发 如果不是在项目设计层面上 只是使用的话 从Git上下载该项目 ...

  9. python collections deque

    collections是python的高级容器类库,包含了dict.truple之外的常用容器. 下面介绍常用的deque 1. deque是双端队列,可以从两端塞元素进去,也可以从两端取元素. 2. ...

  10. 1.JSON 转换对象失败问题 2.spring注入失效

    今天做项目中将一个json 字符串转换为对象,但结果怎么都转换不了!——————最后发现问题,原来是因为这个类我给他添加了带参数的构造器!导致转换失败! 在添加一个无参的构造器就好了! 第二个:今天调 ...