Android ProGuard 混淆库 : keep class not working

标签 android android-studio proguard android-proguard

简介:我在 AS 1 项目中有 2 个模型:

  1. 带有一些“公共(public) API 类”的 Android 库项目
  2. 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/

相关文章:

java - 安卓按钮: onClick not working

optimization - 使用 Proguard 和优化的 Android 配置文件删除日志记录

android - Gradle - Proguard 配置是否继承?

android - Proguard with orrmlite - 参数化集合

java - 有谁知道这个关于 firebase 性能监控的异常是什么?

android - 从我的应用程序登录到 Facebook 适用于模拟器,但不适用于设备

java - 如何将A类中创建的变量的值传递到B类中

android - 当我通过 android studio 运行时不会自动启动应用程序

android-studio - 如何在没有支持库的情况下在Android Studio中创建项目?

java - 使用较新版本的 Android Studio 构建应用程序一年后广告停止运行