我最近将自己的应用程序迁移到了AndroidX,却一无所知。结果,每次我运行项目时,都会给我带来很多错误。
我已将所有Gradle依赖项和targetSDK更新为最新版本代码。我还向gradle.properties添加了以下内容:
android.useAndroidX=true
android.enableJetifier=true
但这仍然没有区别。
以下是我遇到的错误的示例:
错误:程序包android.support.annotation不存在
错误:程序包android.support.v7.widget不存在
错误:软件包RecyclerView不存在
错误:找不到符号类FragmentActivity
错误:找不到符号类CardView
错误:找不到符号类FragmentPagerAdapter
错误:找不到符号类DialogFragment
我想知道我可以摆脱这些错误,因为它阻止了我在移动设备上运行项目?
答案 0 :(得分:1)
Here you can find the full class mapping。
在您的情况下,您必须更改导入:
error: package android.support.annotation does not exist
error: package android.support.v7.widget does not exist
包装:
package androidx.annotation.*;
package androidx.appcompat.widget.*;
课程:
android.support.v4.app.FragmentActivity androidx.fragment.app.FragmentActivity
android.support.v7.widget.CardView androidx.cardview.widget.CardView
android.support.v4.app.FragmentPagerAdapter androidx.fragment.app.FragmentPagerAdapter
android.support.v7.app.AppCompatDialogFragment androidx.appcompat.app.AppCompatDialogFragment
android.support.v7.widget.RecyclerView androidx.recyclerview.widget.RecyclerView
答案 1 :(得分:1)
您似乎已在gradle文件中正确设置了所有内容。问题是缺少一些尚未转换/迁移到AndroidX的软件包。您可以执行以下操作:
要了解更多信息,请签出this。
我希望这会有所帮助。快活的编码!
答案 2 :(得分:1)
在Android Studio菜单中,转到“重构”,然后选择“迁移到AndroidX”。 休息android studio会自动执行。
除此之外,如果您仍然发现错误,则必须手动执行某些任务。
android.support.v7.widget.CardView
与
androidx.cardview.widget.CardView
您将在https://developer.android.com/jetpack/androidx/migrate/class-mappings
中找到与映射有关的信息只需使用Ctr + F查找旧文本并复制替换文本
implementation 'com.android.support:cardview-v7:28.0.0'
与
implementation 'androidx.cardview:cardview:1.0.0'
您将在https://developer.android.com/jetpack/androidx/migrate/artifact-mappings
中找到与地图相关的信息