是否可以将在 android-x 中创建的库添加为我尚未迁移到 android-x 的项目中的模块?

Is it possible to add a library created in android-x as module in my project which is not yet migrated to android-x?

我正在尝试向我的项目中添加一个新模块以用作库。但问题是使用 android x 组件开发的新模块。是否可以在我当前的项目中使用新模块而不迁移到 android x?.

技术上不可能。

原因很简单,Gradle cannot build an android app having both android support libraries and androidx libraries没有任何转换,这会导致类上的合并冲突。

构建期间幕后发生的事情

图书馆A

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

图书馆B

implementation 'com.android.support:appcompat-v7:26.0.0'

因为两个包中的类是相似的:Gradle将它们合并为一个。

现在想象一下这个场景

构建期间幕后发生的事情

图书馆A

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

图书馆B

implementation 'androidx.appcompat:appcompat:1.0.0'

现在 gradle 变得混乱,因为它们都是 appcompat 库,但它们的 类 不同,因此它们无法合并,因此会引发错误。

尽管如此,项目在 androidx 上的用户仍然可以在 的帮助下使用 android 支持引用的库,这会将支持引用转换为相应的 android构建期间的 x 个库。

除非您想开发自己的工具并将其命名为 UnJetifier,否则可以选择在支持项目中同时构建 android 支持引用库和 androidx 库。最好的建议是将您的应用程序迁移到 androidx,因为您会错过很多功能。