Android 4.4.2 取消混淆后友盟报错黑屏问题
最近公司项目考虑到混淆后线上bug不易查找,并且本就有使用360加固,就不做混淆了,但是我发现取消混淆后在android 4.4.2 (仅在这个版本会出现)的手机上跑不起来,启动黑屏几秒后闪退
错误日志
05-26 03:46:59.290 2511-2511/? I/dalvikvm: Failed resolving Lcom/umeng/analytics/d; interface 8796 'Lu/aly/v;'
05-26 03:46:59.290 2511-2511/? W/dalvikvm: Link of class 'Lcom/umeng/analytics/d;' failed
05-26 03:46:59.290 2511-2511/? E/dalvikvm: Could not find class 'com.umeng.analytics.d', referenced from method com.umeng.analytics.MobclickAgent.<clinit>
05-26 03:46:59.290 2511-2511/? W/dalvikvm: VFY: unable to resolve new-instance 7065 (Lcom/umeng/analytics/d;) in Lcom/umeng/analytics/MobclickAgent;
05-26 03:46:59.290 2511-2511/? D/dalvikvm: VFY: replacing opcode 0x22 at 0x0000
取消混淆,build配置
buildTypes {
release { //正式环境
// minifyEnabled true //minifyEnabled主要用来控制是否运行混淆的。
// shrinkResources true //去掉无用的资源
// zipAlignEnabled true //zip优化
// proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
buildConfigField "boolean", "IS_DEBUG", "Boolean.parseBoolean(\"false\")"
}
debug {
buildConfigField "boolean", "IS_DEBUG", "Boolean.parseBoolean(\"true\")"
}
}
开启混淆后就可以正常启动,或者不混淆,但是加固后也可以正常启动
网上搜了很久也找不到原因,求大神帮助
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
找到原因了,是multiDex分包时 未在Application中做初始化导致的
在Application的继承类中
之所以在混淆和加固后没有出现问题,是因为混淆或者加固后缩减了无用代码,没有进行分包处理
至于版本问题,是因为Android 5.0 以及更高版本使用了一个叫做ART的运行时,它天生就支持从应用的apk文件中加载multiple dex文件。所以并没有出现问题
但是后来在了解multiple 时,还发现可能存在其他隐患
其实你不知道MultiDex到底有多坑
设置分包就好了~之前我也这样子搞了好久。。。