简介:我在 AS 1 项目中有 2 个模型:
- 带有一些“公共(public) API 类”的 Android 库项目
- Android APP依赖上述库(库模块在依赖列表中)
任务:我想混淆我的库项目,因为我想将它作为公共(public) SDK 公开,但要保护我的代码...
我做了什么所以我制定了自定义 ProGuard 规则:
-dontshrink
-dontoptimize
-dontpreverify
-keep class com.org.my_public_api_class_name
我跳过了所有其他阶段,以消除错误只存在于混淆阶段的地方。
结果: APP 模块构建失败,出现类似
的错误错误:找不到符号类 my_public_api_class_name
在我看来,问题在于混淆没有跳过我想要的类(class),所以现在他有一些无意义的名字,因此在我使用他的应用程序中,原来的名字不存在。
谢谢,
最佳答案
要将您的类从混淆中排除,试试这个:
-keep class com.org.my_public_api_class_name**
-keepclassmembers class com.org.my_public_api_class_name** {*;}
关于Android ProGuard 混淆库 : keep class not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33648365/