Android debug包运行正常release包崩溃的解决办法
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包崩溃内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Android仿微信调用第三方地图应用导航(高德、百度、腾讯)
这篇文章主要介绍了Android仿微信调用第三方地图应用导航,包括高德、百度、腾讯地图,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-10-10
AndroidStudio图片压缩工具ImgCompressPlugin使用实例
这篇文章主要为大家介绍了AndroidStudio图片压缩工具ImgCompressPlugin使用实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-08-08
Android Studio中通过CMake使用NDK并编译自定义库和添加预编译库
这篇文章是基于Android Studio 3.01版本的,NDK是R16。本文重点给大家介绍Android Studio中通过CMake使用NDK并编译自定义库和添加预编译库的相关知识,感兴趣的朋友一起看看吧2018-01-01
Android获取常用辅助方法(获取屏幕高度、宽度、密度、通知栏高度、截图)
我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就分享一下Android中常用的一些辅助方法2016-02-02


最新评论