【发布时间】:2019-04-03 21:08:22
【问题描述】:
Jetifier 工具用作与 Android Studio 捆绑的 AndroidX 迁移工具的一部分。但是,该工具存在一个问题,此处概述:https://issuetracker.google.com/issues/113224601。
在某些库上运行 Jetifier 时,错误消息如下所示(一个特定库不断为多个用户弹出:org.eclipse.jdt.core):
Failed to transform '/path/to/library/org.eclipse.jdt.core-3.10.0.jar' using Jetifier.
Reason: The type does not support '.' as package separator!
此问题已在 Jetifier 工具本身中修复了一段时间,但修复的版本尚未包含在任何 Android Studio 更新中(即使是最新的金丝雀版本)。
我可以确认运行独立的 Jetifier 可以转换有问题的库,但我不知道如何将这些转换后的库放入我们的项目中。在我的脑海中,我可以想到两种不同的方法来实现向 AndroidX 的迁移:
-
在每个库上运行独立工具并指示 Gradle 使用这些版本(我可能需要告诉 Gradle 任务不要在它们上运行 Jetifier)
李> 指示 Gradle 任务使用独立工具代替 Android Studio 附带的工具。
非常感谢任何帮助使上述建议的修复工作正常工作(或者如果有其他方法,我很想知道)。 Android Gradle 构建系统的内部结构非常复杂,我真的需要一些专家的帮助来克服这个障碍。
这对我们来说是一个严重的障碍,因为我们希望在开发的同时开始迁移我们的应用程序。我们需要在这次迁移中解决很多问题,并且在工具最终更新时准备好“切换”将有助于保持我们的发布正常。
谢谢!
【问题讨论】:
-
您好 nkotula,我确信每个问题都不同,但我发现在 Android Studio 3.1 中的迁移过程中,当我手动完成迁移时遇到了很多问题。所以我最终恢复了我的更改,并在内置迁移工具的 3.2 Android Studio 中打开。这个工具让我完成了 95% 的工作。一些调整和更改,我构建得很好。它甚至会生成包含 useJetifier 的 gradle.properties。我有很多依赖项,Jetifier 没有任何问题。所以希望它是迁移中的东西,而不是工具,但不能肯定地说。
-
如果确实是命名空间问题,作为临时解决方案的最坏情况是,您实际上可以获取该库的源代码并将其作为子模块包含,直到问题稍后解决。
标签: android gradle androidx android-jetifier