【问题标题】:Command line lint error after AndroidX migrationAndroidX 迁移后的命令行 lint 错误
【发布时间】: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


    【解决方案1】:

    最终变成了一个愚蠢的错误。我们的一个库项目有一个 gradle 条目,其中包含旧版本的材料依赖项:

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

    改成这样就解决了:

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

    看起来这是 alpha1 版本特有的问题。可以通过使用单个活动创建一个新的 Android 项目来轻松地重新创建它。然后将项目转换为 AndroidX。这显示了错误,因为它在转换后使用了alpha1 版本。创建测试项目让我发现了错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多