迁移到AndroidX后,“转换失败”错误

时间:2018-05-10 10:18:03

标签: android android-studio

我正在使用Android Studio 3.2 Canary 14,我正在尝试迁移现有项目以使用AndroidX。它来自https://developer.android.com/topic/libraries/support-library/androidx-rn,我必须设置android.enableJetifier=true(这在我选择“Refactor to AndroidX ..”选项时会自动完成)。我还将目标API级别更新为28.还有其他人看到此问题吗?

  

无法转换   使用Jetifier'/Users/jooreill/.gradle/caches/modules-2/files-2.1/com.google.firebase/firebase-perf/15.0.0/6e68f6e44b0c9d91756f903547ee3853349ae666/firebase-perf-15.0.0.aar'。原因:null。 (运行--stacktrace了解更多信息   详细信息。)要禁用Jetifier,请在中设置android.enableJetifier = false   你的gradle.properties文件。

运行“清洁”时发生上述错误。一般情况下,如果执行gradle同步,我会收到多个错误:

  

无法解析依赖关系   ':app-instant @ debug / compileClasspath':无法转换文件   'play-services-measurement-base-15.0.2.aar'匹配属性   {artifactType = jetified-aar}使用transform JetifyTransform

5 个答案:

答案 0 :(得分:5)

对于那些在使用“Refactor to AndroidX ...”后遇到与Android Studio 3.2 Canary 15(或更高版本)相同问题的人:

我必须手动更新一些依赖项,即更改

    classpath 'io.fabric.tools:gradle:1.25.1'

    classpath 'io.fabric.tools:gradle:1.27.0'

在我的项目的build.gradle文件中。

如果您使用的是匕首,则必须升级到2.20或更高版本。

这是因为某些库尚未与AndroidX release notes中的已知问题中提到的AndroidX重构兼容。

答案 1 :(得分:3)

根据Google工程师(支持图书馆)在I / O会话“支持库中的新功能”中所做的statement on the AndroidX refactor,Google已经在Android Studio 3.2 Canary 14中发现了与Jetifier相关的错误。< / p>

因此,建议在开始AndroidX迁移过程之前等到Canary 15(将在下周发布)。

答案 2 :(得分:2)

我可以通过排除某些库来解决类似的问题,这可以通过添加到gradle.properties中来完成:

android.jetifier.blacklist = ...

请注意,此选项是在Android Gradle插件3.3.0-rc01中添加的,它是一个临时解决方法。 有关更多详细信息,请参见https://issuetracker.google.com/issues/119135578#comment5

答案 3 :(得分:1)

我在Jenkins上运行assembleAndroidTest时遇到了这个问题。 最奇怪的部分是,此任务在我的Mac终端上运行了所有问题而没有任何问题,但是在Jenkins上失败了-

Failed to transform file 'cucumber-java-1.2.5.jar' to match attributes {artifactType=processed-jar} using transform JetifyTransform

几天来一直在寻找解决方案,尽管提出了不同的建议,但都没有奏效。

最后,在gradle.properties中禁用Jetifier可以解决该问题。

android.enableJetifier=false

答案 4 :(得分:0)

将JDK 11添加到我的机器后,我也遇到了同样的错误。它将自身设置为默认JDK,此错误开始发生。

将JDK 8设置为默认值后,它已修复。