当前位置: 代码网 > it编程>App开发>Android > Android debug包运行正常release包崩溃的解决办法

Android debug包运行正常release包崩溃的解决办法

2024年05月28日 Android 我要评论
1. 添加配置调试release包,这样的抓取的log日志,这种方式可以知道具体错误,(无法精准到是哪一行)/在 androidmanifest.xml 文件的 application 标签中添加以下

1. 添加配置调试release包,这样的抓取的log日志,这种方式可以知道具体错误,(无法精准到是哪一行)

/在 androidmanifest.xml 文件的 application 标签中
添加以下配置,即可在release包下的日志了/

    android:debuggable="true"
    tools:ignore="hardcodeddebugmode"

2.debug下gson解析一切正常,但是发了release版本的时候,发现解析出来的数据全部是null.

原因:因为release版本下用了混淆,而gson解析需要的javabean,我忘了忽略混淆了,导致被混淆后,无法正正常解析.

解决:把javabean加入避免混淆。

要忽略的javebean是静态内部类。

写法:写上类的绝对路径,类名 ,$ ,再就是内部类名称。

-keep class com.example.app.mybean$statictest{ *; }

如果是正常的javebean就直接写上类的绝对路径,类名即可;

-keep class com.example.app.myclass{ *; }

如果想要忽略某个包下的所有javabean。就直接写上包的路径即可;

-keep class com.example.app.bean.** { *; }

3.release模式下app启动greendao,发现null异常:

简单搜了下,指向了是greendao混淆导致的问题,但是检查混淆配置,已经有了混淆的配置:

-keep class org.greenrobot.greendao.**{*;}
-keepclassmembers class * extends org.greenrobot.greendao.abstractdao {
public static java.lang.string tablename;
}
-keep class **$properties

如果是 arrayindexoutofboundsexception 需要将混淆配置调整为

-keep class org.greenrobot.greendao.**{*;}
-keep public class * extends org.greenrobot.greendao.abstractdao
-keepclassmembers class * extends org.greenrobot.greendao.abstractdao {
    public static java.lang.string tablename;
}
-keep class **$properties
-keepclassmembers class **$properties {*;}

#optional
-keep class net.sqlcipher.database.**{*;}
-keep public interface net.sqlcipher.database.**
-dontwarn net.sqlcipher.database.**
-dontwarn org.greenrobot.greendao.**

到此这篇关于android debug包运行正常release包崩溃的解决办法的文章就介绍到这了,更多相关android release包崩溃内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com