AndroidX 迁移依赖项/库

标签 android androidx android-jetifier

我已成功将我的项目迁移到 AndroidX . 应用运行完美,但我遇到编译时错误,因为我的依赖项使用了支持包。

image1

image2

这个错误的原因

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

项目还在运行吗?

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

目前有快速修复方法吗?

最佳答案

如果您依赖引用旧支持库的库,Android Studio 将更新该库以引用 androidx,而不是通过依赖项转换。 Android Gradle 插件 3.2.0-alpha14 自动应用依赖项转换,它重写 JAR 和 AAR 依赖项(以及传递依赖项)的字节码和资源以引用新的 androidx 打包类和 Artifact 。我们还将以 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 同步会使错误消失。

关于AndroidX 迁移依赖项/库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52518935/

相关文章:

android-studio - Gradle-转换尚未执行

java - Android:如何管理永久后台任务?

android - 如何在android中删除edittextfield的边框

java - Navigation Drawer Activity 在 Drawers Item 中设置点击事件

Android webview固定背景

android - proguard-android-optimize.txt 中的 "@Keep support annotation"规则在使用 AndroidX 时是否仍然适用?

java - 如何在 Activity 的 ViewModel 的 LiveData 对象的观察调用中为 ActionBar 执行 setTitle() ?

java - list 合并失败: Attribute application@appComponentFactory cant solve this

Android Studio 更新到 3.3.1 后,库的 AndroidX 转换失败,这是 Jetifier 的错误吗?

android - Jetifier/AndroidX 在 aar 中转换字符串