为特定模块或功能禁用android.enableJetifier

时间:2018-09-24 18:17:39

标签: android gradle androidx

在我的gradle.properties中以以下设置运行Android Studio 3.2:

android.useAndroidX=true
android.enableJetifier=true

我有一个带有一些C / Java代码的本地项目。使用这些设置,编译将失败,并显示以下错误消息:

  

org.gradle.api.artifacts.transform.ArtifactTransformException:失败   转换文件“ android.jar”以匹配属性   {artifactType = processed-jar}使用转换JetifyTransform
  java.lang.RuntimeException:转换失败   使用Jetifier的“ C:\ Android \ sdk \ platforms \ android-28 \ android.jar”。

我相信它不喜欢我的gradle文件:

apply plugin: 'java'
...
dependencies {
   implementation files("${mySdkDir}/android.jar")
}

我知道我可以全局关闭enableJetifier,这确实会使错误消失。但是,我只想为此特定模块/依赖项禁用喷射器。

如何为本机/ java模块项目设置enableJetifier=false

1 个答案:

答案 0 :(得分:0)

问题可能不在于如何为模块禁用Jetifier-

因为这是由于使用了错误的模块插件造成的。

apply plugin: "com.android.application"
// apply plugin: "com.android.library"

android {
    ...
}

无法禁用模块的Jetifier,因为它是项目范围的功能...因此,解决此问题的唯一方法是不要在{{1 }}块。它甚至不打算打包,因此它在那里什么也没丢失-也不意味着要由Jetifier处理,这仅仅是将其声明为依赖项的结果。