我在SO上读过多个帖子但找不到任何答案。我在这里有多个问题。让我来形容一下:
minifyEnabled
为false
。这会完全禁用ProGuard吗?然后我读了一下关于proguard-rules.pro
文件的地方。它只是有一些评论而没有代码。然后我把它放进去:-printmapping mapping.txt
。然后再次生成签名APK,仍然没有成功。我错过了什么?
编辑1:如果我必须执行一些adb terminal命令,请描述步骤。我之前从未使用过终端。
答案 0 :(得分:13)
在您的gradle文件中,您必须专门将minifyEnabled选项设置为true。
这样可以进行混淆。通过这样做,它还会应用您在' proguard-rules.pro'上定义的模糊规则。文件。强>
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
您可以通过应用相应的命令打印映射和种子(请注意,您需要完全解码/理解加密代码)
-printseeds obfuscation/seeds.txt
和
-printmapping obfuscation/mapping.txt
基本proguard文件的一个例子是:
-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
此致
答案 1 :(得分:7)
尝试检查设置 - > InstantRun ...必须禁用它:)
答案 2 :(得分:2)
答案 3 :(得分:1)
minifyEnabled
设置为true才能启用Proguard
。proguard-rules.pro
内写一些行,以使它们不被Proguard混淆。请参阅"配置ProGuard"在此页面上,了解要为Firebase
添加的内容:https://firebase.google.com/docs/database/android/start/