迁移到AndroidX后出现“无法转换”错误

lfapxunr  于 2023-01-28  发布在  Android
关注(0)|答案(5)|浏览(260)

我使用的是Android Studio 3.2 Canary 14,并尝试迁移现有项目以使用AndroidX。从https://developer.android.com/topic/libraries/support-library/androidx-rn听起来我必须设置android.enableJetifier=true(这是在选择“重构到AndroidX..”选项时自动完成的)。我还将目标API级别更新为28。还有人看到这个问题吗?
无法使用Jetifier转换“/用户/jooreill/.gradle/缓存/模块-2/文件-2.1/com.google.firebase/firebase-perf/15.0.0/6 e68 f6 e44 b 0 c9 d91756 f903547 ee 3853349 ae 666/firebase-perf-15.0.0.aar”。原因:null。(使用--stacktrace运行以获取更多详细信息。)要禁用Jetier,请在www.example.com文件中设置android. enableJetier =falsegradle.properties。
上述错误发生时,我运行“清理”。一般来说,我得到多个错误,如以下如果做gradle同步:
无法解析“:app-instant@debug/compileClasspath”的依赖项:无法使用转换JetifyTransform转换文件“play-services-measurement-base-15.0.2.aar”以匹配属性{artifactType=jetified-aar}

wgmfuz8q

wgmfuz8q1#

对于使用“重构到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文件中。
如果你使用的是dagger,你必须升级到2.20或更高版本。
这是因为一些库还不兼容AndroidX重构,如AndroidX release notes中的已知问题所述。

lyfkaqu1

lyfkaqu12#

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

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

几天来一直在寻找解决方案,虽然有不同的建议-没有一个有效。
最后,在www.example.com中禁用Jetifiergradle.properties为我解决了这个问题。

android.enableJetifier=false
hmmo2u0o

hmmo2u0o3#

我可以通过排除某个库使其不被jetified来解决类似的问题,这可以通过添加到www.example.com来实现gradle.properties:

android.jetifier.blacklist = ...

请注意,此选项是作为临时解决方案添加到Android Gradle插件3.3.0-rc 01中的。https://issuetracker.google.com/issues/119135578#comment5有关详细信息,请访问www.example.com。

nuypyhwy

nuypyhwy4#

根据谷歌工程师(支持库)在I/O会话“支持库中有什么新功能?"期间所做的statement on the AndroidX refactor,谷歌已经在Android Studio 3.2 Canary 14中发现了与Jetier相关的错误。
因此,建议等到Canary 15(将于下周发布)之后再开始AndroidX迁移过程。

jq6vz3qz

jq6vz3qz5#

我在将JDK 11添加到我的机器后遇到了同样的错误。它将自己设置为默认JDK,这个错误开始发生。
在将JDK 8设置为默认值后,该问题得到了修复。

相关问题