【发布时间】:2023-02-20 17:57:06
【问题描述】:
我有统一的项目,使用 Mapbox,
Mapbox 包括以下支持库:support-v4-25.1.0.aar
这个库以 .aar 文件的形式出现,而不是以 gradle implementation 命令的形式出现
尝试构建项目时出现此错误:
无法确定任务“:launcher:lintVitalRelease”的依赖项。
无法解析配置“:launcher:debugRuntimeClasspath”的所有工件。
无法转换 support-v4-25.1.0-.aar (:support-v4-25.1.0:) 以匹配属性 {artifactType=android-manifest, org.gradle.status=integration}。
> JetifyTransform 执行失败:
C:\Users\EFGH\Documents\GitHub\AREX\Temp\gradleOut\unityLibrary\libs\support-v4-25.1.0.aar。
> 使用 Jetifier 转换 'C:\Users\EFGH\Documents\GitHub\AREX\Temp\gradleOut\unityLibrary\libs\support-v4-25.1.0.aar' 失败。
原因:AmbiguousStringJetifierException,消息:给定的工件包含一个字符串文字,其中包含无法安全重写的包引用“android.support.v4”。使用反射的库(例如注释处理器)需要手动更新以添加对 androidx 的支持。(使用 --stacktrace 运行以获取更多详细信息。)
这是一个已知的异常,Jetifier 将无法对这个库进行 jetify。 建议:
-如果你认为这个库不需要被jetified(例如,如果它已经支持AndroidX,或者如果它根本不使用支持库/AndroidX),添加android.jetifier.blacklist = {comma-separated list of regular你不想被jetified的库的表达式(或简单的名称)到gradle.properties文件。
- 如果你认为这个库需要被jetified(例如,如果它使用旧的支持库并且如果它没有jetified会破坏你的应用程序),请联系库的作者更新这个库以支持AndroidX并在支持的版本后使用释放。
如果您需要进一步的帮助,请在https://issuetracker.google.com/issues/140747218发表评论。我的 gradle.properties:
org.gradle.jvmargs=-Xmx**JVM_HEAP_SIZE**M org.gradle.parallel=true android.enableJetifier=true android.useAndroidX=true android.enableR8=**MINIFY_WITH_R_EIGHT** unityStreamingAssets=.unity3d**STREAMING_ASSETS** **ADDITIONAL_PROPERTIES**我想知道是否有办法让我知道一个特定的支持库是否已经支持 AndroidX?(所以它不需要被 jetified)
此外,首先要说的是:为什么有些图书馆不需要jetified?当支持库支持 AndroidX 并且不需要被 jetified 时,这是什么意思? jetify 不是自动用相应的 AndroidX 等效库替换支持库的行为吗?一个支持图书馆怎么能从被喷气化中获得免费通行证呢?这对我来说根本没有意义..
【问题讨论】:
-
嗨@forstack overflowizi,我遇到了这个问题!你有没有找到解决办法?
-
@HollyC 抱歉,我不记得我是如何解决的。这是我以后回答自己问题的一个教训。
标签: android unity3d android-support-library androidx