问题标签 [android-jetifier]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
288 浏览

android - 在带有支持库的项目中反向 Jetifier 与 AndroidX 的依赖关系

我正在尝试使用喷射器的反向功能,但由于未知错误,我似乎被卡住了。

我在独立的 jetifier 工具上运行以下命令(嵌入在 AndroidStudio 中的工具不支持此功能)

但是我遇到了以下错误,它并没有说太多:

有没有人设法使用这个工具的反向功能?有谁知道为什么会出现这个问题?有什么解决办法吗?

PS:工件正在工作,因为它发布在一个关系上,并用作测试项目中的依赖项。

0 投票
1 回答
639 浏览

android - 在仍使用 android.support.* 的主机应用程序中使用 AndroidX 依赖库

我正在使用具有以下两个依赖项的第三方库AndroidX

在编译仍然使用的主机应用程序时,android.support.*出现以下错误:

AAPT:错误:找不到属性“com.xyandroid.debug:defaultNavHost”。

AAPT:错误:找不到属性“com.xyandroid.debug:startDestination”。

为了修复它,我AndroidX在我的主机应用程序中添加了相应的库并遇到了以下错误:

任务:App:transformDexArchiveWithExternalLibsDexMergerForChaseDebug FAILED D8:程序类型已经存在:com.google.android.material.internal.package-info

请注意:该库已使用此链接进行反向喷射

我已经尝试在gradle.properties文件中添加以下行:

已经尝试从包装信息中排除:

上述两种解决方案都不起作用。有什么建议么?

0 投票
1 回答
861 浏览

android - 当库使用 android 组件并且应用程序使用 androidx 组件时,Jetifier 不工作

我有一个使用 AncdroidX 组件的应用程序。喷射器已启用

现在我正在添加一个使用 android 库而不是 AndroidX 的第三方库(com.android.support).

库依赖项

应用程序依赖

我收到第三方库的构建错误

当我检查依赖项时,它显示为

0 投票
2 回答
287 浏览

react-native - 在开发模式下 React Native App Stuck On Jetify

我正在尝试在 0.60 上迁移我的应用程序,但它一直卡在 jetify 进程中。

基本上,在这一行之后:

info 运行 jetifier 将库迁移到 AndroidX。您可以使用“--no-jetifier”标志禁用它。

它只是卡住了,什么也没做。我需要 jetifier 用于 react-native-firebase 和其他一些本地库。有什么建议么?

更新

似乎问题出在符号链接中。我正在使用勒纳。

0 投票
1 回答
1465 浏览

android - 无法使用转换 JetifyTransform 转换文件“library-1.2.0.aar”以匹配属性 {artifactType=processed-aar}

我正在将现有项目迁移到 Androidx 。添加此 2 行后

gradle.properties,我得到一堆编译错误。我找到了很多解决方案,但对我没有任何帮助。请帮帮我。谢谢

gradle(应用级)

0 投票
1 回答
5795 浏览

android - Gradle 插件 3.5.0:“无法转换工件”、“JetifyTransform 执行失败”

我们将 Android Gradle 插件从 3.4.2 更新到 3.5.0(并将 Gradle 从 5.1.1 更新到 5.4.1)。

之后,构建开始在一些子模块中失败。尝试assemble任何构建变体都会产生这种情况(命令行和 Android Studio 中的错误相同):

任何想法如何解决这一问题?

我试过的

更新

Gradle 插件 3.5.0 中开始出现问题;构建在本地和我们的 CI 机器上对我来说表现不稳定。

例如,干净的构建失败./gradlew clean assembleBetaRelease./gradlew assembleBetaRelease工作时失败!

另外,有时我会得到AAPT: error: attribute ... not found而不是上述Failed to transform artifact错误。

恢复到 Gradle 插件 3.4.2,所有这些问题都消失了。

2019 年 10 月编辑:Gradle 插件 3.5.1 仍然出现这种奇怪的行为。编辑 2019 年 11 月和 3.5.2。升级到 Gradle 5.6 也无济于事。

0 投票
3 回答
18741 浏览

android - android-jetifier: "无法解析所有工件"; 新项目上的“改造工件失败”

我有一个我正在尝试构建的相对较新的项目。Gradle 同步正常,但每当我尝试构建时,都会收到如下错误:

我一周前才开始这个项目,一直在使用 Android Studio 的 stable 分支,并使用 Gradle 插件 3.5。那么,有人对如何解决这个问题有任何想法吗?

我试过的:

  • 在 gradle.properties 中禁用 Jetifier 给我留下了关于新旧数据绑定依赖项的错误。
  • 回滚到 Gradle 插件 3.4.2 给出了与上述相同的错误。
  • 添加android.jetifier.blacklist = pass到 gradle.properties 给我留下了与上面相同的错误。
  • 添加android.databinding.enableV2=true到 gradle.properties 给我留下了与上面相同的错误。
  • 在 Android Studio 中运行“迁移到 AndroidX”重构实际上给我留下了这个奇怪的重构预览:为什么我要重构我要重构的库?
  • 从我的应用程序级 build.gradle 中删除apply plugin: 'kotlin-kapt'给我留下了与上述相同的错误。
  • 清洁和重建不起作用。
  • 无效和重新启动不起作用。

编辑 1: Gradle 依赖项,出于好奇......我认为我在这里没有使用任何特别奇怪的东西。

编辑 2:将我的 Gradle 依赖项复制粘贴到一个新的空项目中并得到相同的错误。它可能是这些依赖项之一吗?

编辑 3:从我的 build.gradle 中注释掉各种库(Moshi、Retrofit、Timber、Glide)也没有效果。所以,我可能应该向 Google 提交一份错误报告。在那之前,解决方法是什么?

编辑 4:根据评论的建议,我尝试删除我的 .gradle 文件夹并回滚到早期版本的材料设计库。两者都没有效果,但后者在构建日志中添加了一些有趣的东西:

0 投票
2 回答
866 浏览

android - 为什么gradlew assembleDebug不运行jetifier,而react-native run-android运行jetifier?

我已经设置android.useAndroidX = trueandroid.enableJetifier = true在 gradle.properties 上。但是当我跑步时,react-native run-android我看到:

但是当我将 dir 更改为 android dir 并运行./gradlew assembleDebug时,我没有看到这样的东西。android.support.*因此,我的构建在导入库的任何地方都会中断。

为什么会这样?我怎样才能解决这个问题?有没有办法从外部强制 gradlew 运行 jetifier?

0 投票
1 回答
283 浏览

android-navigation - 为什么在将 'androidx.navigation:navigation-ui' 添加为依赖项之前,getOnBackPressedDispatcher() 方法仍未解决?

我正在尝试自定义onBackPressJetPack Navigation 的行为。虽然我找到了解决方案,但我只是好奇在以下场景中幕后发生了什么:

我活动的初始状态是

为什么在我将以下依赖项添加到 build.gradle 后,该getOnBackPressedDispatcher()方法正在被解析:

幕后发生了什么?它与Jetifier有什么关系吗?它是否根据声明的依赖关系或类似的东西改变类?

0 投票
2 回答
639 浏览

gradle - Android:弃用不能转换为注解

掉进了迁移到 AndroidX 的兔子洞……

我几乎完成了迁移,但遇到了一个我似乎无法克服的错误。

已经尝试Clean & RebuildInvalidate Caches / Restart

看起来有些东西正在将@Deprecated 注入到无法识别的 R.java 文件中。

该应用程序的build.gradle文件很长,但这里是相关部分(如果相关,可以发布更多):

我从 Kotlin 编译器中得到一系列错误

链接到 R.java

R.java 文件截图

我没有titleMargins在我的项目中使用过任何地方。当我进行搜索时,这些@Deprecated值仅显示在 Android sdk 和com.google.android.material工件中,包含在.gradle/caches/. 我试过删除这个文件夹,每次编译都会再次出现。

我认为这与数据绑定有关,但我已经做了好几天了,找不到原因。

我在这里找到的特定注释处理器文件的来源:ProcessDataBinding.java

更新 1

这篇关于迁移到 AndroidX 的现实的精彩文章解释了 Android X 的 jetifier 工具不处理生成的代码。我已经看到其他相关的 SO 帖子处理 , 等问题ButterKnifeDagger但我们没有使用其中任何一个。我们正在使用几个数据绑定和编译库,但我不确定哪一个是错误引用的来源。所以我的问题是如何找到这个生成代码的来源并修复它?

更新 2

回到原来的pre-AndroidX项目,这个错误其实是在升级支持库到28的时候出现的。只是换行了

implementation "com.android.support:appcompat-v7:27.1.1"

implementation "com.android.support:appcompat-v7:28.0.0"

会触发编译错误。

在一系列碎屑之后,我遇到了这个问题跟踪器:当另一个注释处理器失败时,数据绑定 v2 会产生错误,这可能是相关的,但我仍然不确定如何修复它。