【问题标题】:Cannot import class from Library.jar file after ProGuard ObfuscationProGuard 混淆后无法从 Library.jar 文件中导入类
【发布时间】:2020-05-12 03:33:35
【问题描述】:

我已经构建了一个 .jar 库文件。我可以在我的项目中正常导入它,但在 Proguard 混淆之后,我无法再从该库中调用类/函数。我的包和类已经转换为a.class、b.class、c.class,如下图所示。

【问题讨论】:

    标签: java jar obfuscation


    【解决方案1】:

    ProGuard 重命名类。分发库时,需要配置 ProGuard 不重命名需要暴露的 API。

    您可以添加如下规则:

    -keep public class * {
         public protected *;
    }
    

    这将停止重命名所有公共类中的所有公共和受保护方法。

    【讨论】:

    • 您可能还想添加如下标志:-keepparameternames -renamesourcefileattribute SourceFile -keepattributes Exceptions,InnerClasses,Signature,Deprecated, SourceFile,LineNumberTable,Annotation,EnclosureMethod
    • 我可以知道在 ProGuard GUI 中的哪里可以添加此规则吗?谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    相关资源
    最近更新 更多