Android ProGuard对库进行模糊处理:让类无法正常工作

mic*_*ael 2 android proguard android-studio android-proguard

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

  1. 带有一些"公共API类"的Android库项目
  2. Android APP依赖于上面的库(库模块在依赖列表中)

任务:我想混淆我的库项目,因为我想将它公开为公共SDK,但保护我的代码...

我做了什么:所以我制定了自定义ProGuard规则:

-dontshrink
-dontoptimize
-dontpreverify
-keep class com.org.my_public_api_class_name
Run Code Online (Sandbox Code Playgroud)

我跳过所有其他阶段,以消除错误只在混淆阶段.

结果: APP模块的构建失败,出现错误

Error: cannot find symbol class my_public_api_class_name

对我来说,问题是混淆不会跳过我想要的类,所以现在他有一些毫无意义的名字,因此在APP中,我正在使用他,原来的名字不存在.

谢谢,

ran*_*dom 12

要从混淆中排除您的类,请尝试以下操作:

 -keep class com.org.my_public_api_class_name**
 -keepclassmembers class com.org.my_public_api_class_name** {*;}
Run Code Online (Sandbox Code Playgroud)