AndroidX迁移依赖/库

Khe*_*raj 9 android androidx android-jetifier

我已成功将项目迁移到AndroidX.应用程序运行正常,但我收到编译时错误,因为我的依赖项使用支持包.

此搜索

图像2

这个错误的原因

因为PhotoView是一个依赖类,它使用的android.support.v7.widget.AppCompatImageView是我的项目中不再可用的.因为它现在androidx.appcompat.widget.AppCompatImageView

项目还在运行吗?

是的,android.enableJetifier将此依赖项转换AndroidX为运行时,但我想摆脱编译时错误.

现在有快速解决方案吗?

Kou*_*sic 11

如果您依赖于引用旧支持库的库,Android Studio将通过依赖项转换更新该库以引用androidx.依赖转换由Android Gradle Plugin 3.2.0-alpha14自动应用,它重写了JAR和AAR依赖项(和传递依赖项)的字节码和资源,以引用新的androidx打包的类和工件.我们还将提供独立的翻译工具作为JAR.

我看到(使用./gradlew app:dependencies)rxbinding的设计依赖项已更新为新的com.google.android.material依赖项.将com.google.android.material.snackbar.Snackbar传递给引用android.support.design.widget.Snackbar本身的库函数会使Android Studio显示编译错误,但实际编译和运行该应用程序有效.我认为AS还不能真正处理这些变化.

似乎存在一些缓存问题,删除.idea/libraries和执行Gradle同步会使错误消失.


Khe*_*raj 3

我通过删除.idea文件夹并再次同步项目解决了这个问题。

这似乎是 IDE 的错误,而不是 Jetifier 的错误,它在迁移后不会重新同步依赖项。Jetifier 的工作做得很好。它在构建时将所有依赖项支持库转换为 androidx。请参阅@this post以获得良好的解释。