我只是将android studio更新为V3.1.1。然后我的程序出错了。 构建程序时,有两个错误。 enter image description here
org.gradle.api.tasks.TaskExecutionException:任务':app:kaptGenerateStubsDebugKotlin'执行失败 enter image description here
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'
}
答案 0 :(得分:2)
好吧,我终于克服了这一点。
当我使用--stacktrace
时,我发现:app:kaptDebugKotlin
是构建android程序的过程。
--stacktrace result picture
我在此java.lang.ClassNotFoundException: org.jetbrains.kotlin.resolve.checkers.SimpleDeclarationChecker
程序中收到错误:app:kaptDebugKotlin
。
我怀疑kotlin实现中有什么新东西,所以我将我的kotlin_version从1.2.21更新为1.2.30。
然后我得到更明确的错误。这是room
参数错误。
room error
所以我在SQL查询中将arg0
更改为parameter name in Dao functions
。
最后它有效。
答案 1 :(得分:0)
我正在测试项目。将匕首与Kotlin一起使用,此任务失败是一个阻碍。
我尝试了很多方法,但是错误消息没有意义,第二天,我开始将类复制到新项目中,发现问题是由于匕首引起的,并且还将Moshi注释getopts
Java类转换为Kotlin。
@JsonClass(generateAdapter = true)
然后:)