如何在 Android Studio 中启用 ProGuard 混淆?

新手上路,请多包涵

我必须通过在 Android Studio 中启用 Proguard 混淆来保护我的应用程序。我已经搜索了如何应用它的过程,但没有得到任何明确的解决方案。当我尝试时,我总是会出错。那么谁能告诉我在我的应用程序中应用它的明确步骤?

我正在通过以下步骤执行此操作:

  1. 在 Android Studio 中,打开一个 Android 项目。

  2. 更改为项目视图。

  3. 更改以下行:

minifyEnable falseminifyEnable true

  1. 设置 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 的散列

原文由 visual process 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 637
2 个回答

我解决了这个问题:

打开项目的 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 的散列

原文由 Harshad 发布,翻译遵循 CC BY-SA 3.0 许可协议

在 Android Studio 中启用 ProGuard。

下面是如何在 Android Studio 中启用默认 ProGuard 的示例。

  1. 进入app的build.gradle文件
  2. 启用 minifyEnabled true
  3. 启用 shrinkResources true 以减小 APK 大小
  4. proguardFiles getDefaultProguardFile('proguard-android.txt') 启用默认值。如果您想使用自己的混淆器文件,请使用以下规则。
    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 设置链接和其他设置:

有关更多详细信息,请访问 此链接

原文由 Maheshwar Ligade 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题