我正在尝试使用新的 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首选项类。
答案 0 :(得分:0)
帮助我的是单击android studio顶部栏菜单中的refactor --> migrate to androidX
。
我需要一些手动工作才能通过构建,但这真是花生:)
答案 1 :(得分:0)
只需使用<PreferenceScreen>
标记代替androidx.preference.PreferenceScreen
。
这是一个错误,我希望它会尽快解决。为确保<PreferenceScreen>
不会出现任何问题,请在完成处理xml文件后重命名。