Proguard问题排除(Android)

讨厌写proguard rule
但是又不得不写
小几百日活的APP都马上有山寨APP挂一堆广告重新上传
NMB。
好好写proguard rule文件。

好处至少有如下几点:
1 防止山寨,如果APP有线服务,在线服务应该做版本合法性判断
低于正常版本做更新提示,高于正常版本判断非法,拒绝提供服务
然而客户端代码如果被反了,然后改了相关代码,可能也没什么卵用
2 应用包体积或多或少会减少

proguard容易出问题无非是native method、反射等导致需要保持一些类、方法、成员变量;proguard相关写法不介绍了,搜索引擎上狠详细。

如果Proguard前应用能正常运行,Proguard后崩溃怎么定位和解决问题?
1 Proguard文件加上下面两行
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable
如果不加这两行,崩溃信息只有一个类名,没有源码行数信息,而由于类名被混淆,很难定位崩溃代码位置;
2 找到mapping文件,使用Android Studio打包,mapping文件在module目录下build/outputs/mapping/渠道名称/release(debug)/mapping.txt;eclipse的话,找搜索引擎吧
3 根据Logcat打印出来的错误信息,首先根据mapping文件搜索崩溃发生在哪个文件,然后根据行数信息定位具体错误代码。

如果你手头还有dex2jar、jd-gui这样的工具(没有建议搜下下载),那么可以反编译下classes.dex;看下混淆后想保留的信息是不是真的保留了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 180,274评论 25 708
  • 声明 这篇文章更多的是做一个整理,内容来自于ProGuard官方文档以及各种博客等,相关文章的链接在参考目录里,感...
    夷陵小祖阅读 3,835评论 0 23
  • 混淆(Proguard)用法 最近项目中遇到一些混淆相关的问题,由于之前对proguard了解不多,所以每次都是面...
    于晓飞93阅读 57,230评论 38 230
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,135评论 19 139
  • 你在黑夜悄悄醒来,悠然绽放。在初升的阳光下,尽情展示你的妖饶多姿。清香扑鼻,如脂的郁金香,吐露着芬芳的花蕊,在春天...
    缥缈若尘阅读 395评论 1 2

友情链接更多精彩内容