【问题标题】:How do I update all libraries, after Migrating to AndroidX? [duplicate]迁移到 AndroidX 后,如何更新所有库? [复制]
【发布时间】:2019-10-09 16:58:48
【问题描述】:

我最近盲目地将我的应用迁移到了 AndroidX,不知道来龙去脉。结果,每次我运行该项目时,都会出现大量错误。

我已将我的所有 Gradle 依赖项和 targetSDK 更新为最新版本代码。我还在 gradle.properties 中添加了以下内容:

android.useAndroidX=true 
android.enableJetifier=true

但这仍然没有任何区别。

以下是我遇到的错误示例:

错误:包 android.support.annotation 不存在

错误:android.support.v7.widget 包不存在

错误:包 RecyclerView 不存在

错误:找不到符号类 FragmentActivity

错误:找不到符号类 CardView

错误:找不到符号类 FragmentPagerAdapter

错误:找不到符号类DialogFragment

我想知道我可以摆脱这些错误,因为它会阻止我在我的移动设备上运行项目?

【问题讨论】:

    标签: java android android-studio gradle androidx


    【解决方案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
    

    【讨论】:

      【解决方案2】:

      您的 gradle 文件中的所有内容似乎都已正确设置。问题是缺少尚未转换/迁移到 AndroidX 的包。这是你可以做的一个小技巧:


      • 转到您的 app.gradle 文件并右键单击任意位置。
      • 在弹出的菜单中选择重构
      • 在子菜单中,选择迁移到 AndroidX
      • 坐下来,让 Android Studio 迁移您的所有文件。


      要了解更多信息,请查看this

      我希望这会有所帮助。编码愉快!

      【讨论】:

        【解决方案3】:

        在 Android Studio 菜单中,转到 Refactor 并选择 Migrate to AndroidX。 Rest android studio 会自动做。

        除此之外,如果您仍然发现错误,那么您将不得不手动执行某些任务。

        1. 在布局中找到所有旧的并替换它

        android.support.v7.widget.CardViewandroidx.cardview.widget.CardView

        你会在这里找到映射相关信息https://developer.android.com/jetpack/androidx/migrate/class-mappings

        使用 Ctr+F 找到旧文本并复制替换文本

        1. 在应用程序构建中 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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-11-08
          • 1970-01-01
          • 2019-01-11
          • 1970-01-01
          • 1970-01-01
          • 2019-12-10
          • 2019-03-02
          相关资源
          最近更新 更多