异常类型: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. 关于Android RenderScript 的详细说明和一些实用文档

    http://www.cnblogs.com/TerryBlog/archive/2012/03/02/2377251.html RenderScript 是一种低级的高性能编程语言,用于3D渲染和处 ...

  2. 关于MVC 上传文件

    前台代码如下 @{ Layout = null; } <!DOCTYPE html> <html> <head> <title>Index</ti ...

  3. 深入学习js之——词法作用域和动态作用域

    开篇 当我们在开始学习任何一门语言的时候,都会接触到变量的概念,变量的出现其实是为了解决一个问题,为的是存储某些值,进而,存储某些值的目的是为了在之后对这个值进行访问或者修改,正是这种存储和访问变量的 ...

  4. 一篇关于cfDNA的综述

    文章题目:A Field Guide for Cancer Diagnostics using cell-free DNA: from Principles to Practice and Clini ...

  5. nginx简介及优点总结

    简介:nginx是web服务器,由C语言开发,基于事件驱动能处理百万级别的tcp连接,高度模块化的设计和自由的许可证使得扩展其功能的模块层出不穷, 跨平台,可使用当前操作系统特有的一些高效API来提高 ...

  6. ubuntu文字界面与图形界面切换

    redhat: (据说是) 图形界面->文字界面:crtl+alt+F1~6 文字界面->图形界面:crtl+alt+F7 -------------------------------- ...

  7. bzoj 1691: [Usaco2007 Dec]挑剔的美食家

    Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 621  Solved: 280[Submit][Status][Discuss] Description ...

  8. shell编程学习笔记之sed编辑器

    在shell编程中,大多数处理的都是文本文件.对文本文件进行处理除了使用交互式文本编辑器(vi[m],gedit......)也可以使用另外一类:流编辑器. 流编辑器:使用预定义的编辑规则来对文本进行 ...

  9. 爬虫之动态HTML处理(Selenium与PhantomJS )

    Selenium Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium 可以直接运行在浏览器上, ...

  10. Graph_Master(连通分量_Poj_1904)

    Poj_1904 背景:本来是在做Voj的连通分量,做到了E( hdu_4685 ),想到了二分图,但是笔者只会最大匹配,但题目要求要输出所有的最大匹配情况,想了好久都没想出来怎么做,因为如果我已知一 ...