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

时间:2015-11-11 10:12:22

标签: android android-studio proguard android-proguard

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

  1. Android库项目包含一些“公共API类”
  2. Android APP依赖于上面的库(库模块在依赖列表中)
  3. 任务:我想混淆我的库项目,因为我希望将其公开为公共SDK,但保护我的代码...

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

    -dontshrink
    -dontoptimize
    -dontpreverify
    -keep class com.org.my_public_api_class_name
    

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

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

    Error: cannot find symbol class my_public_api_class_name

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

    谢谢,

1 个答案:

答案 0 :(得分:10)

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

 -keep class com.org.my_public_api_class_name**
 -keepclassmembers class com.org.my_public_api_class_name** {*;}