Android debug.apk 闪退 ClassNotFoundException 直接Run正常

来源:互联网 发布:兰州李知女人 编辑:程序博客网 时间:2024/06/02 04:42

最近工作时遇到一个非常坑爹的问题,每次打包给测试的app-debug.apk总会在一部分机器上闪退,但是直接在出问题的机型上run又没有任何问题。

如果你遇到跟我一样的情况,可以往下看看,说不定能得到些提示,也欢迎跟我探讨~


闪退时的异常如下:


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


Caused by: java.lang.ClassNotFoundException: Didn't find class "package.MyApplication" on path:
DexPathList[[zip file "/data/app/package-2.apk"],nativeLibraryDirectories=[/data/app-lib/package-2, /vendor/lib, /system/lib]]
...


这个问题困扰我好多天了,一开始还以为上传apk的过程中出现了问题

后来才发现Android Studio在不同的设备上通过 run app 生成的debug.apk包大小竟然不一样。。。


测试机型如下:

手机型号          系统版本          包大小

p10plus            7.0                    6.21MB

红米note3        6.0.1                 6.19MB

酷派8297         4.4.4                 5.87MB

...

(家里还有一台Nubia系统是5.0.1,后续带来测试后会更新)


兼容情况如下:

高版本的设备运行出的apk安装在Android L以下的设备上会报错

低版本的设备运行出的apk安装在高版本设备上正常


注意:

这个BUG并非一定会出现,我的另一个项目从未出现此情况。

仔细对比了另一个项目的各项配置,基本一模一样,但另一个项目生成的debug.apk大小稳定在14.9MB。


在一篇博文中找到一个解决方案,有需要的可以参考:http://blog.csdn.net/xufazhong/article/details/71155528


我觉得这样降级的处理方式并不好,目前我的做法是生成测试所需debug.apk的时候使用 "Build" -> "Build APK" 生成,而非在设备上直接"Run"

顺带一提使用Build APK生成的debug.apk是6.15MB


如果有哪位大神了解具体原因和更好的解决方案还望告知,先谢过了~



原创粉丝点击