【问题标题】:Gradle cannot find symbol of inner class after proguard在proguard之后Gradle找不到内部类的符号
【发布时间】:2015-01-11 20:17:34
【问题描述】:

我的 gradle 项目包含一个主模块和一个库

库的一个类包含一个枚举,我已将其排除在 proguard 混淆之外,因为它在主项目中使用。

Gradle 在构建时失败,并出现“错误。找不到符号变量 MyEnum”,同样的错误也出现在另一个接口上,该接口也在类中声明

我已经反编译了我的库的 classes.jar 文件,该文件是在构建时生成的,并且枚举恰好位于“无法找到”的位置,即 MyClass$MyEnum。 “MyClass”类在编译后仍然存在于它的正确位置。

这是我用于枚举的 proguard 代码:

-keep,allowoptimization enum com.mypackage.MyClass$MyEnum {
    public static **[] values();
    public static ** valueOf(java.lang.String);
    **[] $VALUES;
    public *;
 }

我不允许发布任何代码

在使用 proguard 时,内部类有什么特别的技巧吗?

【问题讨论】:

    标签: android enums gradle proguard inner-classes


    【解决方案1】:

    不是 testet,因为我现在已经提取了我的内部类,但这应该可以工作

    -keep class my.outer.Class$MyInnerClass
    -keepattributes InnerClasses
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-09
      • 2017-03-03
      • 2021-03-28
      • 2017-02-01
      • 1970-01-01
      • 2020-12-31
      • 2020-08-25
      • 1970-01-01
      相关资源
      最近更新 更多