Android studio 从Eclipse到Android Studio:为什么在不构建版本时使用proguard.cfg?

Android studio 从Eclipse到Android Studio:为什么在不构建版本时使用proguard.cfg?,android-studio,android-gradle-plugin,proguard,Android Studio,Android Gradle Plugin,Proguard,因此,我一直在尝试将多项目(即eclipse项目)应用程序的开发迁移到Android Studio(v1.1) 通过文件>导入项目导入非常简单,而且没有发生意外 然而,当我尝试制作/重建项目时,我遇到了许多惊喜。第一个与Proguard无关,与源文件编码有关(最初在Windows-1252中),但我很快找到了使用此答案的解决方案 然后,对于我的com.comp.mod.X类,“错误:找不到符号类”。然后,我转到包含该类的模块(Android Studio模块,以前是一个Eclipse项目),并将

因此,我一直在尝试将多项目(即eclipse项目)应用程序的开发迁移到Android Studio(v1.1)

通过文件>导入项目导入非常简单,而且没有发生意外

然而,当我尝试制作/重建项目时,我遇到了许多惊喜。第一个与Proguard无关,与源文件编码有关(最初在Windows-1252中),但我很快找到了使用此答案的解决方案

然后,对于我的
com.comp.mod.X
类,“错误:找不到符号类”。然后,我转到包含该类的模块(Android Studio模块,以前是一个Eclipse项目),并将以下内容添加到其proguard.cfg中,从而解决了这个问题:

-keep public class com.comp.mod.X
-keepclassmembers class com.comp.mod.X {
    public static final boolean BB;
}
这给我留下了一个“错误:找不到符号变量”,用于前面提到的类中定义的常量BB。我通过向相同的proguard.cfg添加以下内容来解决此问题:

-keep public class com.comp.mod.X
-keepclassmembers class com.comp.mod.X {
    public static final boolean BB;
}
这只给我留下了一个“错误:找不到符号方法getPreferenceX()”。我通过将该方法添加到相同的-keepclassmembers中来解决此问题,因此上面的内容现在看起来:

-keepclassmembers class com.comp.mod.X {
    public static final boolean BB;
    public static java.lang.String getPreferenceX();
}
我以为我完成了,但令我沮丧的是,当我试图重建项目时,我收到了来自项目中其他模块的大量额外错误,所有类型都是“错误:找不到符号类/变量/方法”,并且与一些proguard.cfg相关

我本可以继续为每个模块销毁proguard.cfg文件,但现在我开始怀疑我做了一些根本错误的事情,因为这些proguard.cfg文件在Eclipse下工作得非常好。所以

  • 为什么突然间这些都不再适合Android Studio
  • 如果是这样,为什么基于Android Studio的构建会因为Proguard的混淆而抱怨“找不到符号”
  • 我错过了什么

    注意:我没有尝试“生成签名APK”。我所做的只是“重建项目”。

    目前(截至2015-04-24),所有构建类型的
    minifyEnabled
    默认值
    false
    对于多模块项目是不正确的,其中一些模块(包括应用程序)依赖于其他模块。这是因为这会导致生成类型而不是传播到库——它们总是作为发行版生成的

    我们非常欢迎您提出解决此错误的建议或其修复通知