Android Studio ProGuard似乎无法运行

mja*_*nes 11 android proguard android-studio

在过去的几天里,我从Eclipse切换到了Android Studio,并且大部分工作都得到了解决.但是,当我生成签名的APK时,似乎ProGuard永远不会运行.

我正在使用Generate Signed APK向导,选择'Run ProGuard'并指定我的proguard.cfg作为配置文件.构建过程运行没有错误并生成功能apk,但apk比Eclipse生成的大65%.当我通过Android Studio的APK向导生成apk并且不选择'Run Proguard'时,生成的apk与应该在其上运行ProGuard的apk相同.在我的项目目录中的任何位置都没有生成mapping.txt,seeds.txt或usage.txt.我试过添加

buildTypes {
    release {
        runProguard true
        proguardFile file('proguard.cfg')
        proguardFile getDefaultProguardFile('project-android.txt')
    }
}
Run Code Online (Sandbox Code Playgroud)

和我的build.gradle文件的变体,但也没有任何影响.

这是在Android Studio 0.2.0上发生的,尽管我在0.1.9上看到了相同的行为.我正在使用Windows 7.

谁能告诉我可能会发生什么?如果我能找到ProGuard应该生成的日志,我会很高兴.

mja*_*nes 2

令人高兴的是,我找到了解决方案。问题是,在创建签名的 apk 之前,我修改了 AndroidManifest 中的包名称,以便覆盖 Google Play 商店中的特定构建。不过,这次包名的改变并没有重构所有对应的“import '包名'.R;” 贯穿整个代码的行。今天,重新导入项目后,由于尝试导入 R 时出现错误,它将不再构建。一旦我修改了所有导入行,我的项目不仅可以正确构建,而且导出签名的 apk 也可以正确运行 ProGuard。

我猜测 Android Studio 以某种方式缓存了“import R”行,并且当 ProGuard 尝试运行时它没有这些缓存值,然后崩溃了。我不知道为什么我没有看到错误输出。