Ошибка lint командной строки после миграции AndroidX - PullRequest
0 голосов
/ 02 ноября 2018

Эта ошибка появляется после перехода на AndroidX, только при запуске сборки из командной строки через ./gradle lintDebug

Я не вижу никаких предупреждений или ошибок в Android Studio.

Вот код, который выдает ошибку:

import com.google.android.material.snackbar.Snackbar

...

Snackbar.make(this.findViewById<View>(android.R.id.content), R.string.recorder_permissions,
                    Snackbar.LENGTH_INDEFINITE).setAction("ENABLE") {
                // Request permission here
            }.show()

И ошибка:

app/src/debug/java/com/mobile/android/ui/LogInfoActivity.kt:214: Error: Must be one of: BaseTransientBottomBar.LENGTH_INDEFINITE, BaseTransientBottomBar.LENGTH_SHORT, BaseTransientBottomBar.LENGTH_LONG or value must be ≥ 1 (was -2) [WrongConstant]
                      Snackbar.LENGTH_INDEFINITE).setAction("ENABLE"
                      ~~~~~~~~~~~~~~~~~~~~~~~~~~
  app/src/debug/java/com/mobile/android/ui/LogInfoActivity.kt:258: Error: Must be one of: BaseTransientBottomBar.LENGTH_INDEFINITE, BaseTransientBottomBar.LENGTH_SHORT, BaseTransientBottomBar.LENGTH_LONG or value must be ≥ 1 (was -2) [WrongConstant]
                                  Snackbar.LENGTH_INDEFINITE).setAction("ENABLE"
                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~

build.gradle: implementation "com.google.android.material:material:1.0.0-rc01"

Метод SnackBar.make имеет @IntDef, требующий только константы SnackBar.LENGTH .... Изменение констант базового класса вызывает ошибку в Android Studio.

Версия Build Tools: 3.2.1 Версия Gradle: 4.6

1 Ответ

0 голосов
/ 02 ноября 2018

Закончилось глупой ошибкой. В одном из наших проектов библиотеки была запись gradle со старой версией зависимости материала:

implementation "com.google.android.material:material:1.0.0-alpha1"

Изменение этого исправлено:

implementation "com.google.android.material:material:1.0.0"

Похоже, это была проблема, связанная с выпуском alpha1. Его можно легко восстановить, создав новый проект Android с одним действием. Затем конвертируйте проект в AndroidX. Это показывает ошибку, так как она использовала версию alpha1 после преобразования. Создание тестового проекта подсказало мне ошибку.

...