![](/img/trans.png)
[英]How to generate ProGuard obfuscation in using Android Studio?
[英]How to enable ProGuard obfuscation in Android Studio?
我必须通过在 Android Studio 中启用 Proguard 混淆来保护我的应用程序。 我已经搜索了如何应用它的过程,但我没有得到任何明确的解决方案。 当我尝试时,我总是得到一个错误。 那么谁能告诉我在我的应用程序中应用它的明确步骤吗?
我正在通过以下步骤执行此操作:
在 Android Studio 中,打开一个 Android 项目。
更改为项目视图。
更改以下行:
minifyEnable false
到minifyEnable true
设置 ProGuard 规则(可选)
4.1 在项目视图中,选择 proguard-rules.pro 文件。
4.2 添加以下几行以告诉 ProGuard 不要混淆某些类。
-keepclassmembers class com.dom925.xxxx { public * }
我按照步骤得到的错误是
错误:任务 ':app:packageRelease' 的执行失败。 无法计算 D:\\Android\\Pojectname\\app\\build\\intermediates\\classes-proguard\\release\\classes.jar 的哈希值
在 Android Studio 中启用 ProGuard。
下面是如何在 Android Studio 中启用默认 ProGuard 的示例。
proguardFiles getDefaultProguardFile('proguard-android.txt')
启用默认的。 如果您想使用自己的 proguard 文件,请使用以下规则。
buildTypes { release { debuggable false minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debug { debuggable true minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }
这些链接中提供了包含适用于 Android 的 ProGuard 设置和其他设置的链接:
有关更多详细信息,请访问此链接
我解决了这个问题:
打开项目的 proguard-rules.pro 并将其添加到底部:
-dontwarn java.nio.file.Files
-dontwarn java.nio.file.Path
-dontwarn java.nio.file.OpenOption
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
基本上我是如何解决这个问题的,我试图在“发布”模式下运行我的应用程序,但遇到了一堆类似于这里的人的错误: https : //github.com/square/okio/issues/144
我几乎按照他说的去做并修复了它。
希望这可以帮助其他人生成他们的 APK!
在此处访问更多详细信息:
错误:任务 ':app:packageRelease' 的执行失败。 > 无法计算 /../AndroidStudioProjects/../classes.jar 的哈希值
如果您使用 jack 构建 android 项目,那么它会自动进行收缩、混淆、重新打包和 multidex。 只需在下面添加:
defaultConfig {
jackOptions {
enabled true
}
}
在构建类型中,提及项目proguard
文件:
buildTypes {
release {
// Jack build environment does not require minifyEnabled or shrinkResources.
// Conceptually, the jack compiler consolidates the functionality of javac, ProGuard, and dex in a single conversion step
//minifyEnabled = true
//shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
}
debug {
...................
}
}
要禁用 ProGuard 混淆,需要在 proguard-project.txt 文件中添加以下行
####No obfuscation
-dontobfuscate
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.