Android(安卓)工程混淆后无法找到自定义控件类的解决方案
16lz
2021-01-26
在混淆里keep忽略掉这些类的父类!比如:
Android工程混淆后报出如下错误:
10-19 13:26:19.750: E/AndroidRuntime(13654): Caused by: android.view.InflateException: Binary XML file line #193: Error inflating
… …
E/AndroidRuntime(13480): Caused by: java.lang.ClassNotFoundException:
xml文件中自定义了下面一个插件:
对应的View实现定义如下:
解决方案:
android在用proguard混淆时,一般情况下使用系统自带的配置文件就可以保持大部分外部需要引用的类,比如Activity,view扩展等等,但是在本项目的proguard文件中没有保存AppPicsGallery所引用的Gallery类,所以要在proguard.cfg文件中加入
-keep public class * extends android.widget.Gallery{
public *;
}
另外,有些情况下一些引入的外部lib,如果被混淆也会出现各种各样的问题,如果不想混淆这些包,就要加上
-keep class packagename.** {*;}
这样就能完整保持原有class了。
更多相关文章
- Android(安卓)编译大全
- Android(安卓)安装时提示 INSTALL_PARSE_FAILED_MANIFEST_MALFOR
- android ubuntu编译ffmpeg
- android保存文件到sd卡,读取和清空记录功能(可以用来保存用户名和
- Android-->AndroidManifest.xml 文件
- Unable to get buffer of resource asset file
- android中handler 轮询数据变化 使用WeakReference防止内存泄露
- Android用户界面优化-Android(安卓)SlidingMenu菜单栏程序设计开
- Android中Handler导致内存泄漏的原理分析