Android Studio 3.0中的DexGuard集成

时间:2017-10-27 15:55:18

标签: android-studio-3.0 dexguard

我已将我的Android项目升级为使用最新的Android Studio 3.0功能。从那时起,我在每个Gradle同步上收到以下警告消息:

  

警告:您使用的其中一个插件支持Java 8语言   特征。要尝试Android插件内置的支持,请删除   从build.gradle开始:       申请插件:'dexguard'要了解详情,请转到https://d.android.com/r/tools/java-8-support-message.html

如果我转到链接的网址,我可以看到:

  

如果Android Studio检测到您的项目正在使用Jack,   Retrolambda或 DexGuard ,IDE使用提供的Java 8支持   而是那些工具。

有Jack和Retrolambda的迁移文档,但DexGuard没有。

我的问题是:

  • 我可以删除DexGuard插件吗?它仍能按预期工作吗?
  • 如果不是,我应该如何解决此警告?

我正在运行Android Studio 3.0和DexGuard 8.0.16

1 个答案:

答案 0 :(得分:0)

您可能正在使用Dexguard进行代码混淆,加密或篡改检测。因此删除它将删除这些功能。您应该尝试使用dexguard的8.0.17版本,并从构建配置中删除retrolamb,Jack和Dexguard-java8插件。

在我的应用程序上,这似乎继续工作,在8.0.15 / 8.0.16上我仍然必须启用dexguard-java8才能让它正常工作。

在您的app build.gradle中添加此项以启用java8编译。

apply plugin: 'dexguard'
...
android {
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

在你的project.gradle中添加

buildscript {
  repositories {
    flatDir { dirs 'dexguard' }
    ...
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:3.0.0'
    classpath ':dexguard:'
    ...
  }
}

并确保gradle文件中没有对retrolambda或dexguard-java8的引用,一切都应该可以正常工作。