1. 混淆后,应用启动时报 MyApplication cant be cast to android.app.Application
前提: 在混淆规则中已经声明 android.app.Application子类不混淆,所以MyApplication是没有被混淆的
原因:但是原生的Application却被混淆了,所以报上述错误;
解决:声明用到的Android原生的类不要被混淆
2. 声明 Service、Application子类不混淆,自己以为的结果是子类里面所有的方法都不混淆,但实际上是继承自父类的那些方法不被混淆;自定义的方法如果没有特殊声明,还是会被混淆的
3. 如果要声明某个类中某些方法不被混淆,需要按照如下格式:
-keepclassmembers class ClassName{ public void methodName(int,int);
...
}
(1)public 、 void: 依据实际方法的作用域和返回值填写
(2)int .int :按照实际方法的参数进行填写;注意:如果某个方法没有参数,就什么都不写,直接用();之前自己不知道,写了void,结果发现还是会被混淆
(3)一个类中多个方法的声明可以放在一个 -keepclassmembers大括号中
本文详细解析了ProGuard代码混淆工具在Android应用开发中的常见问题及解决方案,包括如何正确配置混淆规则以避免应用启动时报错,以及如何指定特定类或方法不被混淆。
4881

被折叠的 条评论
为什么被折叠?



