AndroidX依赖项和XML导致崩溃

4

我最近升级到了Android 3.3版本,现在有很多依赖项都改成了AndroidX。这导致应用程序崩溃,同时还需要在XML中更改依赖项。我在CoordinatorLayout方面也遇到了类似的问题。我在stackoverflow上搜索了一下,但这个问题的相关问题并不多,因为AndroidX相对较新。所以我感觉有必要提出这个问题。

我想知道在哪里可以找到FloatingActionButtonXML,同样地,所有XML的网站都在哪里可以找到与androidX依赖项相关的XML

XML

 <android.support.design.widget.FloatingActionButton

崩溃日志

android.view.InflateException: 二进制XML文件第15行:二进制XML文件第15行:无法膨胀类android.support.design.widget.FloatingActionButton 原因:android.view.InflateException: 二进制XML文件第15行:无法膨胀类android.support.design.widget.FloatingActionButton 原因:java.lang.ClassNotFoundException:在路径上找不到类“android.support.design.widget.FloatingActionButton”,路径为: DexPathList [[zip文件“/data/app/com.kc.unsplashdemo-kTZQS-p2845Xly7PcTuAmg==/base.apk”,zip文件“/data/app/com.kc.unsplashdemo-kTZQS-p2845Xly7PcTuAmg==/split_lib_dependencies_apk.apk”,zip文件

依赖项

dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation project(':androidunsplash')
        implementation 'com.squareup.picasso:picasso:2.71828'
        implementation("com.squareup.okhttp3:okhttp:3.12.0")
        implementation 'androidx.recyclerview:recyclerview:1.0.0'
        implementation 'com.google.code.gson:gson:2.8.5'
    
        implementation 'com.google.android.material:material:1.0.0'
        implementation 'androidx.appcompat:appcompat:1.0.2'
        implementation 'androidx.constraintlayout:constraintlayout:1.1.1'
    }

你有查看过这个文档吗?https://developer.android.com/jetpack/androidx/migrate - Aditya
是的,那只涵盖了依赖关系,而不包括XML。 - Amir Dora.
我知道我在gradle中更改了依赖项,但应用程序仍在崩溃。我需要所有androidX XML的链接或任何文档。或者任何自动将所有XML转换为androidX的方法。我使用了Android Studio的工具>迁移到AndrodiX。但这似乎对XML无效。 - Amir Dora.
3
例如从androidx中的浮动操作按钮,迁移从android.support.design.widget.FloatingActionButtoncom.google.android.material.floatingactionbutton.FloatingActionButton。或者你也可以通过导航菜单对整个项目进行重构。 - Aditya
Android X 的依赖已经添加完毕。我更新了我的问题并附上了相应的依赖项。 - Amir Dora.
显示剩余2条评论
3个回答

10
你可以在这里找到旧安卓 依赖项 与使用 androidx新依赖项 的映射关系:连接

你会在那里找到你要查找的依赖项:

com.google.android.material.floatingactionbutton.FloatingActionButton

当在布局中替换某些内容时,建议使用 ctrl + r 来更新整个项目并节省时间,因为迁移到 androidx 时需要做相当多的手动工作。


3
添加androidX的依赖不足以完成迁移。要将组件迁移到androidX,您需要手动更改它们。虽然搜索所有新包可能会耗费时间,但我建议您尝试在xml中删除旧名称,然后开始输入新名称。如果已经向您的项目添加了androidX依赖项,则在您开始输入后,Android Studio将建议一个新的包名称。 enter image description here enter image description here enter image description here 此外,您可以在这里查找其他信息。

1
似乎您在将Android Studio升级到3.3时遇到了问题。以下是解决此问题的方法:
a)如果您已将代码迁移到Androidx,请检查应用程序中的gradle.properties文件,如果没有这两行内容:
android.useAndroidX=true
android.enableJetifier=true

接下来在Android Studio中选择 重构 -> 迁移到Androidx,可以将您的应用程序迁移到Androidx,包括xml文件。该选项会显示终端中的更改,请接受这些更改以迁移到Androidx。

b)如果以上步骤无效,仍然出现错误,请使用以下方法替换此处内容:

android.support.design.widget.FloatingActionButton

使用

com.google.android.material.floatingactionbutton.FloatingActionButton

这段文字是从谷歌提供的映射文件中获取的,该文件将早期的支持库类映射到androidx包类: 迁移到Androidx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接