【发布时间】:2019-12-31 09:20:09
【问题描述】:
我刚刚开始使用 android 开发并尝试使用 Room 库。从昨天开始,我就收到了这条警告信息
w: [kapt] 请求增量注释处理,但支持 禁用,因为以下处理器不是增量的: androidx.lifecycle.LifecycleProcessor (NON_INCREMENTAL), androidx.room.RoomProcessor (NON_INCREMENTAL)。
我已经尝试研究和修复,但无法避免此错误,这是我的 grale.build 文件。请建议/建议我做错了什么。
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
android {
compileSdkVersion 29
buildToolsVersion "29.0.2"
defaultConfig {
applicationId "ps.room.bookkeeper"
minSdkVersion 15
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
javaCompileOptions {
annotationProcessorOptions {
arguments = ["room.schemaLocation":"$projectDir/schemas".toString()]
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.core:core-ktx:1.0.2'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.google.android.material:material:1.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
// life cycle dependencies
def lifecycle_version = "2.0.0"
implementation "android.arch.lifecycle:extensions:$lifecycle_version"
kapt "android.arch.lifecycle:compiler:$lifecycle_version"
//Room dependencies
//def room_version = "2.1.0"
implementation 'android.arch.persistence.room:runtime:2.1.0'
kapt 'android.arch.persistence.room:compiler:2.1.0'
//annotationProcessor 'android.arch.persistence.room:compiler:2.1.0'
// implementation "android.arch.lifecycle:extensions:$room_version"
// kapt "android.arch.persistence.room:compiler:$room_version"
// androidTestImplementation "android.arch.persistence.room:testing:$room_version"
//implementation 'androidx.room:room-runtime:2.1.0'
//annotationProcessor 'androidx.room:room-compiler:2.1.0'
}
【问题讨论】:
-
为什么你的 annotationProcessor 被评论了?您是否尝试取消注释它们然后构建项目? (适用于房间和生命周期)
-
尝试在你的 gradle.properities 中添加 android.enableSeparateAnnotationProcessing=true reddit.com/r/androiddev/comments/ai92pt/… ,这可能与你的问题有关
-
您可以暂时将项目 build.gradle 文件中的 kotlin-gradle-plugin 降级到 1.3.41 版本。我认为这是与 kapt 相关的错误。更多信息:youtrack.jetbrains.com/issue/KT-33515
-
您也可以使用
kapt.incremental.apt=false在 libs/中创建一个 gradle.properties 文件,如问题中所述作为解决方法。它对我有用。 -
@Necrontyr,你的建议真的奏效了。非常感谢
标签: android android-room android-lifecycle