坑了一个晚上的crash ,立个flag纪念下

Process: com.honjane.app, PID: 19363
java.lang.RuntimeException: Unable to instantiate application com.honjane.app.MyApplication: java.lang.ClassNotFoundException: Didn't find class "com.honjane.app.MyApplication" on path: DexPathList[[zip file "/data/app/com.honjane.app-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.honjane.app-2, /vendor/lib, /data/cust/lib, /system/lib]]at android.app.LoadedApk.makeApplication(LoadedApk.java:531)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4531)
at android.app.ActivityThread.access$1800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1292)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5234)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:834)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:650)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.honjane.app.MyApplication" on path: DexPathList[[zip file "/data/app/com.honjane.app-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.honjane.app-2, /vendor/lib, /data/cust/lib, /system/lib]]at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:497)at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
at android.app.Instrumentation.newApplication(Instrumentation.java:976)
at android.app.LoadedApk.makeApplication(LoadedApk.java:526)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4531)
at android.app.ActivityThread.access$1800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1292)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5234)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:834)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:650)
at dalvik.system.NativeStart.main(Native Method)                                                

可以看到application就crash了 所以也别想打出有用的日志,只能一个个排除,需求中只是加入jpush jar,打release包就出现这个问题:

Unable to instantiate application com.honjane.app.MyApplication: java.lang.ClassNotFoundException: Didn't find class "com.honjane.app.MyApplication" on path: DexPathList[[zip file "/data/app/com.honjane.app-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.honjane.app-2, /vendor/lib, /data/cust/lib, /system/lib]]

开始排查:
1、只要加入jpush,就crash。说明和极光推送有关,把极光推送放到老版本测试,正常运行,排除极光推送代码写错,
2、再注释掉新版本的其他新加入的第三方包,只新增加jpush包,还是crash,难得是jar包冲突了,打开jar查看,jpush包中只引入了gson,protobuf,这两个包都没有重复引用。排除包冲突。
3、拆包问题,加入一个jpush包,会增加2700多个size,这些都是在第一个dex中增加了,那么有可能把一部分代码就要放到第二个dex中,如果这些被排挤到第二个dex中的文件正好是application中必须的,那就会找不到文件,这样就会crash了。
顺着这个思路开始排查哪些文件必须在Main-dex中出现,然后配合日志发现端倪:

//过滤日志
adb logcat | grep honjane
I/dalvikvm(12348): Failed resolving Lcom/honjane/app/MyApplication; interface 10063 'Lcom/honjane/app/neter/tb;'
W/dalvikvm(12348): Link of class 'Lcom/honjane/app/MyApplication;' failed

大意啊,一万只草泥马飞过,查错的时候只看W,E级别的日志,没有查看I级别日志,

可以从上面看到是MyApplication,中有一个tb的neter找不到,反编译查看这个叫tb的neter被放到第二个dex了,坑死了,把tb的neter加入防止混淆清单中,然后放入Main-dex列表,crash解决了。

Unable to instantiate application com.honjane.app.MyApplication相关推荐

  1. android程序突然崩溃如何调试,Android应用开发android 调试崩溃Unable to instantiate application的解决方法...

    本文将带你了解Android应用开发android 调试崩溃Unable to instantiate application的解决方法,希望本文对大家学Android有所帮助. 更新后Android ...

  2. Unable to instantiate application

    2019独角兽企业重金招聘Python工程师标准>>> 08-17 09:20:10.931 21429-21429/com.moreunion.zhenghao E/Android ...

  3. 安卓- apk安装出现闪退java.lang.RuntimeException: Unable to instantiate application

    Android Apk安装出现java.lang.RuntimeException: Unable to instantiate application## 08-08 14:50:12.445 29 ...

  4. Android应用闪退异常java.lang.RuntimeException: Unable to instantiate application

    1.闪退异常的出现 开发过程中测试的时候一般都是打的debug包来测试,但是昨天打的debug包突然出现一个很棘手的问题,一直没找到原因,本来项目在手机上直接部署是没问题的,但是打个debug包给测试 ...

  5. 安卓开发问题之 Unable to instantiate application com.android.tools.fd.runtime.BootstrapApplication

    博客: 安卓之家 微博: 追风917 CSDN: 蒋朋的家 简书: 追风917 问题 这个问题出现在程序 Launcher3 运行中,系统端需要我这里修改 Launcher3 的一些东西,修改了给他, ...

  6. java.lang.RuntimeException: Unable to instantiate application问题的可能处理方法

    网上搜索了好久,大部分都是说两种解决办法:1,关闭Instant Run:2,降低或者升级gradle版本. 但是我已经关闭了InstantRun,然后并不认可第二种方法,虽然这样说,但是自己也不知道 ...

  7. 在kotlin中启动activity发生java.lang.RuntimeException: Unable to instantiate activity ComponentInfo for Kot

    在kotlin中启动activity发生java.lang.RuntimeException: Unable to instantiate activity ComponentInfo for Kot ...

  8. Android之提示Unable to instantiate fragment***MyLikeFragment .could not find Fragment constructor

    1 问题 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.appsinnova.android.keepd ...

  9. Android studio运行出现Unable to determine application id: com.android.tools.idea.run.ApkProvisionExcepti

    Android studio运行出现Unable to determine application id: com.android.tools.idea.run.ApkProvisionExcepti ...

  10. Unable to instantiate appComponentFactory

    Android调试app跑起来就崩溃,一直提示Unable to instantiate appComponentFactory 2019-12-12 19:37:11.983 4040-4040/f ...

最新文章

  1. i基准指令集 mips_mips addiu
  2. python爬虫流程-Python:爬虫处理流程及网页解析
  3. Linux2017Linux架构师!
  4. SQL Server 将一个表中字段的值复制到另一个表的字段中
  5. 外围功能电路控制 LET′S TRY“嵌入式编程”: 4 of 6
  6. 向eclipse中导入myeclipse项目
  7. 树莓派(Arduino)仿真软件 —— Fritzing
  8. Ext.js入门:TabPanel组件(八)
  9. Java基础教程——线程局部变量
  10. 《物联网Android程序开发案例式教程》Demo2:相对布局
  11. redis通过hscan导入大hash key
  12. 捷联惯导系统模型及仿真(三)
  13. 在线翻译_英汉互译,支持繁体,韩语,日语 - 微信小程序在线翻译,单词句子翻译
  14. 渲染科研入门到入土(Chinagraph2020闫令琪老师分享)
  15. cvr存储服务器的优势,CVR是什么
  16. C# Winform鼠标样式设置方法
  17. 入手评测 i7 1255u和i5 1235U选哪个好
  18. php爬取百度关键词时出现,百度安全验证,解决方法
  19. 算数基本定理和代数基本定理
  20. 新课程背景下的教师专业发展问题及其对策

热门文章

  1. linux内网安装git,Linux 安装git
  2. nginx服务无法停止(Windows)
  3. assert()理解
  4. HTTP协议详解(经典)
  5. Linux下Mongodb安装和启动配置
  6. Java中abstract关键字详解
  7. 51nod 1022 石子归并 V2(四边形不等式)
  8. April Fools Day Contest 2016 F. Ace It!
  9. Jade报错:Invalid indentation,you can use tabs or spaces but not both问题
  10. linux中文件带方块,JFreeChart图片里的中文在linux下显示为方块的解决办法