分类目录归档:Kotlin

Kotlin 编译出现 Internal error: unexpected lint return value -1 的解决方法

在一次Java和Kotlin混合编译时这样的错误:

Execution failed for task ':kotlin:extractDebugAnnotations'.
> A failure occurred while executing com.android.build.gradle.internal.lint.AndroidLintWorkAction
   > Internal error: unexpected lint return value -1

原因排查:去除所有Java的类,一个个类进行编译排查后发现只要引用了import androidx.annotation.xxx; 的注解时都编译失败。

原因分析:kotlin是100%兼容Java的,可能由于编译插件版本导致。

解决方案:

将原来的kotlin gradle插件版本降级。

修改根目录build.gradle 文件:


// 编译失败的配置
plugins {
    // ...省略其他
    id 'org.jetbrains.kotlin.android' version '1.7.0' apply false
}

// 修改后的配置
plugins {
    // ...省略其他
    id 'org.jetbrains.kotlin.android' version '1.6.21' apply false
}

Kotlin 常用配置

Kotlin Parcelable 自动生成配置

code>@Parcelize</code注解框架

plugins {
    id 'kotlin-parcelize'
}
import android.os.Parcelable
import kotlinx.parcelize.Parcelize

@Parcelize
data class VideoBean(var url: String?) : Parcelable

ViewBinding

buildFeatures {
    viewBinding = true
}

MVVM 依赖包


// kotlin coroutines + livedata + view model
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4'
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.5.1'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.5.1'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1'