Android Studio не распознает библиотеку настроек Android в XML - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь использовать новую библиотеку предпочтений 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). Обратите внимание, что класс предпочтений androidx распознается в коде Java без каких-либо проблем.

Ответы [ 2 ]

0 голосов
/ 22 июня 2019

Просто используйте <PreferenceScreen> тег вместо androidx.preference.PreferenceScreen.

Это ошибка, надеюсь, она скоро решится. Чтобы у <PreferenceScreen> не возникало никаких проблем, просто переименуйте его, когда закончите работу с XML-файлом.

0 голосов
/ 06 января 2019

Что помогло мне, так это щелкнуть refactor --> migrate to androidX в верхнем меню бара в Android Studio.

Мне потребовалась ручная работа, чтобы выполнить сборку, но это были арахисы:)

...