ProGuard 不生成映射文件

ProGuard doesn't generate mapping file

我已经阅读了关于 SO 的多个主题,但找不到任何答案。我在这里有多个问题。让我描述一下:

然后我在某处阅读了有关 proguard-rules.pro 文件的内容。它只有一些注释,没有代码。然后我把这个放进去:-printmapping mapping.txt。然后再次生成签名的APK,仍然没有成功。我错过了什么?

编辑 1:如果我必须执行一些 adb 终端命令,请描述步骤。我以前从未使用过终端。

  1. 您需要将 minifyEnabled 设置为 true 才能启用 Proguard
  2. 对于某些库,您需要在 proguard-rules.pro 中写一些行,以免它们被 Proguard 混淆。请参阅本页的 "Configure ProGuard" 部分以了解要为 Firebase 添加的内容:https://firebase.google.com/docs/database/android/start/
  1. 将 minifyEnabled 设置为 true。
  2. 构建生成 APK。
  3. 在输出文件夹中查找映射文件。[不要清理项目,否则它将消失]

在您的 gradle 文件中,您必须专门将 minifyEnabled 选项设置为 true。
这使得混淆成为可能。通过这样做,它还会应用您在 'proguard-rules.pro' 文件中定义的混淆规则。

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

您可以打印 mappingseeds 使用(注意您需要两者才能完全 decode/understand 加密代码) 通过应用相应的命令

-printseeds obfuscation/seeds.txt

-printmapping obfuscation/mapping.txt

一个基本混淆文件的例子是:

-optimizationpasses 5
-dontpreverify
-repackageclasses ''
-allowaccessmodification
-optimizations !code/simplification/arithmetic
-keepattributes *Annotation*

-verbose

-dump obfuscation/class_files.txt
-printseeds obfuscation/seeds.txt
-printusage obfuscation/unused.txt
-printmapping obfuscation/mapping.txt

此致,

尝试检查设置 -> InstantRun...它必须被禁用 :)