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

时间:2019-01-04 13:05:32

标签: android xml android-studio android-preferences androidx

我正在尝试使用新的 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'

并且android studio设置为与androidx一起使用

android.enableJetifier=true
android.useAndroidX=true

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

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

2 个答案:

答案 0 :(得分:0)

帮助我的是单击android studio顶部栏菜单中的refactor --> migrate to androidX

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

答案 1 :(得分:0)

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

这是一个错误,我希望它会尽快解决。为确保<PreferenceScreen>不会出现任何问题,请在完成处理xml文件后重命名。