Android Studio 无法识别 xml 中的 androidx 首选项库

Android Studio does not recognise androidx preference library in xml

我正在尝试使用新的 androidx 首选项库,但是 Android Studio 根本无法在 xml 中识别它。在我的 res/xml/setting_prefs.xml 中,我有

<?xml version="1.0" encoding="utf-8"?>
<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:key="@string/settings">
    <androidx.preference.SwitchPreference android:key="test"
        android:title="test"/>
    <androidx.preference.SeekBarPreference
        android:title="Stopwatch frequency"
        android:summary="The time (in ms) between each update of the stopwatch"
        android:defaultValue="100"
        android:min="50"
        android:max="200"/>
</androidx.preference.PreferenceScreen>

虽然这在 运行 时工作正常,android studio 根本无法识别任何内容并且不提供自动完成建议。

我在build.gradle文件中添加了相关的依赖:

implementation 'androidx.legacy:legacy-preference-v14:1.0.0'
implementation 'androidx.preference:preference:1.1.0-alpha02'

and android 工作室设置为使用 androidx 和

android.enableJetifier=true
android.useAndroidX=true

(请注意,这是一个全新的 Androidx 项目,而不是我迁移的旧项目。我在开始新项目后立即迁移到 androidx)

我正在使用 Android Studio 3.2.1 并且已经尝试过常见的解决方案,例如使缓存无效+重新启动,删除 .idea 文件夹,删除依赖项并再次添加它们(甚至更改版本),删除 xml 文件并创建一个新文件,甚至尝试 运行 一个干净的 gradle 构建。它唯一识别或提供建议的是 android.preference.PreferenceScreen class 和其他一些来自默认(非 androidx 库)的 classes。请注意 androidx 首选项 class 在 java 代码中被毫无问题地识别。

对我有帮助的是点击 android 工作室顶部栏菜单中的 refactor --> migrate to androidX

我需要一些手动工作才能使构建通过,但那是花生:)

只需使用 <PreferenceScreen> 标签代替 androidx.preference.PreferenceScreen

这是一个bug,希望尽快解决。为确保 <PreferenceScreen> 不会出现任何问题,只需在完成对 xml 文件的处理后重命名即可。