«Устаревшая пользовательская проверка lint» из «androidx.appcompat.AppCompatIssueRegistry», для которой требуется более новый уровень API.

У меня есть проект, в котором я получаю следующее предупреждение Android lint:

Устаревшая пользовательская проверка на ворсинки

../../../../../../../.gradle/caches/transforms-2/files-2.1/fc4398fa701898f50fcec85691d33578/appcompat-1.2.0/jars/lint.jar: обнаружен линт реестр проблем (androidx.appcompat.AppCompatIssueRegistry), для которого требуется более новый уровень API. Это означает, что пользовательские проверки lint предназначены для более новой версии lint; пожалуйста, обновите Lint можно расширить с помощью пользовательских проверок: дополнительные проверки, реализованные разработчиками и библиотеками, например, для обеспечения соблюдения определенных видов использования API, требуемых библиотекой или руководством по стилю кодирования компании.

API-интерфейсы Lint еще не стабильны, поэтому эти проверки могут привести либо к снижению производительности, либо к прекращению работы, либо к неправильным результатам.

Это предупреждение помечает настраиваемые проверки lint, которые используют устаревшие API и должны быть обновлены для запуска в текущей среде lint.

Он также может помечать проблемы, связанные с использованием более новой версии API, а это означает, что вам необходимо использовать более новую версию lint (или плагин Android Studio или Gradle и т. д.) для работы с этими проверками. Чтобы подавить эту ошибку, используйте идентификатор проблемы ObsoleteLintCustomCheck, как описано в разделе «Подавление предупреждений и ошибок».

ObsoleteLintCustomCheck Приоритет предупреждения 10/10

Я понятия не имею, что это вообще значит, я не использую никаких пользовательских ворсинок. Это также происходит только в модуле приложения, а не в модуле библиотеки.

Я только что изменил моего проекта с API 26 на 30 и переключился на AndroidX/JetPack.

Чтобы воспроизвести его, клонируйте проект, извлеките commit 96273fd8b1af5d5c63603b7df71e0849f518a9e5, перейдите в подкаталог android/ и запустите ./gradlew lint. Я понятия не имею, можно ли это уменьшить и как (я новичок в разработке Android, проклинаю все проблемы с ним, разрабатывая программное обеспечение с конца 1980-х).


person mirabilos    schedule 28.12.2020    source источник
comment
Привет. Удалось ли вам найти решение этой проблемы?   -  person kapil thadani    schedule 05.02.2021
comment
@kapilthadani к сожалению нет   -  person mirabilos    schedule 05.02.2021


Ответы (2)


Проблема вызвана проверками lint, которые включены в appcompat в вашем модуле приложения. Как сказано в сообщении предупреждения, проверки lint были скомпилированы с использованием старого API.

Есть два способа, как вы можете решить эту проблему.

  1. Обновите до последней версии 1.3.0-beta01.

    implementation 'androidx.appcompat:appcompat:1.3.0-beta01'
  2. Подавить предупреждение lint в lintOptions блокировать

    
    android {
        lintOptions {
            disable 'ObsoleteLintCustomCheck'
        }
    }
    
person PRE    schedule 04.03.2021

appcompat 1.2 использует проверки более поздней версии, в частности, инструменты сборки 4.0.

Таким образом, если вы обновите appcompat до 1.2 (прямо или косвенно), лучше также обновить com.android.tools.build:gradle до совместимой версии.

Следующее обновление должно работать в самом верхнем build.gradle:

classpath 'com.android.tools.build:gradle:4.0.2'
person Kartal Tabak    schedule 08.03.2021
comment
Я не могу перейти на эту версию, потому что затем нажимаю youtrack.jetbrains.com/issue/IDEA-258598 (по сути, IntelliJ помечает мои файлы build.gradle как имеющие ошибки). Вот почему я сейчас застрял на classpath 'com.android.tools.build:gradle:3.6.4'. - person mirabilos; 18.03.2021