android studio V3.1.1 更新后任务“:app:kaptGenerateStubsDebugKotlin”执行失败
Execution failed for task ':app:kaptGenerateStubsDebugKotlin' after android studio V3.1.1 update
我刚刚将 android studio 更新到 V3.1.1。然后我的程序就出错了。
构建程序时,有两个错误:
一个在'Run build':
org.gradle.api.tasks.TaskExecutionException: 任务 ':app:kaptGenerateStubsDebugKotlin' 执行失败
- Java 编译器中的另一个:
java.lang.ClassNotFoundException: org.jetbrains.kotlin.resolve.checkers.SimpleDeclarationChecker
enter image description here
这是我的 gradle:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 26
defaultConfig {
applicationId "com.restress.saniauto"
minSdkVersion 21
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
buildToolsVersion '27.0.3'
}
androidExtensions {
experimental = true
}
buildscript {
ext.kotlin_version = '1.2.21'
repositories {
maven { url 'https://maven.fabric.io/public' }
mavenCentral()
}
dependencies {
// The Fabric Gradle plugin uses an open ended version to react
// quickly to Android tooling updates
classpath 'io.fabric.tools:gradle:1.22.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
}
}
allprojects {
repositories {
jcenter()
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
//RxJava
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
implementation 'io.reactivex.rxjava2:rxjava:2.1.8'
implementation 'io.reactivex:rxkotlin:0.55.0'
//Room & RxAndroid2
implementation "android.arch.persistence.room:runtime:$room_version"
implementation "android.arch.persistence.room:rxjava2:$room_version"
kapt "android.arch.persistence.room:compiler:$room_version"
kapt "android.arch.persistence.room:compiler:$room_version"
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
testImplementation "android.arch.persistence.room:testing:$room_version"
//Design
implementation 'com.android.support:design:26.1.0'
implementation 'com.android.support:percent:26.1.0'
}
好吧,我终于克服了这个问题。
当我使用 --stacktrace
时,我发现 :app:kaptDebugKotlin
是 BUILDING an android 程序中的一个过程。
--stacktrace result picture
我在这个 :app:kaptDebugKotlin
过程中得到错误 java.lang.ClassNotFoundException: org.jetbrains.kotlin.resolve.checkers.SimpleDeclarationChecker
。
我怀疑 kotlin 实现中有什么新东西,所以我将 kotlin_version 从 1.2.21 更新到 1.2.30。
然后我更清楚errors.That是room
参数错误。
room error
所以我将 arg0
更改为 SQL 查询中的 parameter name in Dao functions
。
终于成功了。
我正在做测试项目。在 Kotlin 中使用 dagger 并且此任务失败是一个障碍。
我尝试了很多方法,但错误消息没有意义,第二天我开始将 classes 复制到一个新项目中,发现问题是由于 dagger 并且还转换了 Moshi 注释 @JsonClass(generateAdapter = true)
java class 进入科特林。
MoviesViewModel @Inject constructor(private val movieService: MovieService): ViewModel()
然后:)
我遇到了同样的错误,通过在我的项目中将 kotlin 更新到最新版本 (1.5.31) 解决了这个问题 build.gradle:
buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.31"
}
}
我刚刚将 android studio 更新到 V3.1.1。然后我的程序就出错了。 构建程序时,有两个错误:
一个在'Run build':
org.gradle.api.tasks.TaskExecutionException: 任务 ':app:kaptGenerateStubsDebugKotlin' 执行失败
- Java 编译器中的另一个:
java.lang.ClassNotFoundException: org.jetbrains.kotlin.resolve.checkers.SimpleDeclarationChecker enter image description here
这是我的 gradle:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 26
defaultConfig {
applicationId "com.restress.saniauto"
minSdkVersion 21
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
buildToolsVersion '27.0.3'
}
androidExtensions {
experimental = true
}
buildscript {
ext.kotlin_version = '1.2.21'
repositories {
maven { url 'https://maven.fabric.io/public' }
mavenCentral()
}
dependencies {
// The Fabric Gradle plugin uses an open ended version to react
// quickly to Android tooling updates
classpath 'io.fabric.tools:gradle:1.22.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
}
}
allprojects {
repositories {
jcenter()
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
//RxJava
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
implementation 'io.reactivex.rxjava2:rxjava:2.1.8'
implementation 'io.reactivex:rxkotlin:0.55.0'
//Room & RxAndroid2
implementation "android.arch.persistence.room:runtime:$room_version"
implementation "android.arch.persistence.room:rxjava2:$room_version"
kapt "android.arch.persistence.room:compiler:$room_version"
kapt "android.arch.persistence.room:compiler:$room_version"
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
testImplementation "android.arch.persistence.room:testing:$room_version"
//Design
implementation 'com.android.support:design:26.1.0'
implementation 'com.android.support:percent:26.1.0'
}
好吧,我终于克服了这个问题。
当我使用 --stacktrace
时,我发现 :app:kaptDebugKotlin
是 BUILDING an android 程序中的一个过程。
--stacktrace result picture
我在这个 :app:kaptDebugKotlin
过程中得到错误 java.lang.ClassNotFoundException: org.jetbrains.kotlin.resolve.checkers.SimpleDeclarationChecker
。
我怀疑 kotlin 实现中有什么新东西,所以我将 kotlin_version 从 1.2.21 更新到 1.2.30。
然后我更清楚errors.That是room
参数错误。
room error
所以我将 arg0
更改为 SQL 查询中的 parameter name in Dao functions
。
终于成功了。
我正在做测试项目。在 Kotlin 中使用 dagger 并且此任务失败是一个障碍。
我尝试了很多方法,但错误消息没有意义,第二天我开始将 classes 复制到一个新项目中,发现问题是由于 dagger 并且还转换了 Moshi 注释 @JsonClass(generateAdapter = true)
java class 进入科特林。
MoviesViewModel @Inject constructor(private val movieService: MovieService): ViewModel()
然后:)
我遇到了同样的错误,通过在我的项目中将 kotlin 更新到最新版本 (1.5.31) 解决了这个问题 build.gradle:
buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.31"
}
}