【发布时间】:2018-11-02 13:09:21
【问题描述】:
只有在通过./gradle lintDebug从命令行运行构建时才会在迁移到 AndroidX 后看到此 lint 错误
我在 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 出错。
构建工具版本:3.2.1 Gradle 版本:4.6
【问题讨论】:
标签: android android-studio lint androidx