【问题标题】:How to upgrade ProGuard for Android?如何为 Android 升级 ProGuard?
【发布时间】:2017-07-18 12:49:51
【问题描述】:

我使用Android SDK Manager 下载了最新版本的Android SDK。但是ProGuard 没有更新,一直保持在 4.7 版本。

是否需要从其website手动下载ProGuard并解压到\android-sdk\tools\proguard

或者 Android SDK 会一直使用 4.7 版吗? 4 years 一直是这样。

【问题讨论】:

  • 您还没有哪些功能需要做?
  • 为了使用 Android Target SDK 24+ 进行编译,需要 Java 版本 1.8。但是 Java 1.8 与 Proguard 4.7 不兼容。
  • 那么开发人员如何编译并发布他们的代码?你启用 Jack 编译器了吗?
  • 如果所有目标 SDK 都设置为 Android 6.0 (api23),则可以导出 APK。我不知道 Jack 编译器是什么。
  • 您必须启用 Jack 编译才能使用 Java 8 功能集...developer.android.com/guide/platform/j8-jack.html

标签: android android-proguard


【解决方案1】:

如今,ProGuard 是 Android Gradle 插件的依赖项,通常会随之更新。查看./gradlew buildEnvironment 的输出(自Gradle 2.10 起支持),您会看到类似

classpath
+--- com.android.tools.build:gradle:2.2.3
|    \--- com.android.tools.build:gradle-core:2.2.3
...
|         +--- net.sf.proguard:proguard-gradle:5.2.1
|         |    \--- net.sf.proguard:proguard-base:5.2.1

如果你想使用另一个 ProGuard 版本而不是 Android Gradle 插件所依赖的版本,你可以像这样覆盖它

buildscript {
    configurations.all {
        resolutionStrategy {
            // We want version 5.3.2 instead of 5.2.1.
            force 'net.sf.proguard:proguard-gradle:5.3.2'
        }
    }
}

【讨论】:

    【解决方案2】:

    像这样修改你的build.gradle

    // Top-level build file where you can add configuration options common to all sub-projects/modules.
    buildscript {
        ...
        dependencies {
            classpath 'net.sf.proguard:proguard-gradle:6.1.1' // <-- Add this line
            ...
        }
    }
    

    您不必手动下载。

    【讨论】:

      猜你喜欢
      • 2011-06-28
      • 2020-09-21
      • 2018-11-24
      • 1970-01-01
      • 2017-01-22
      • 2023-03-27
      • 2015-02-17
      • 2016-01-27
      • 2013-12-24
      相关资源
      最近更新 更多