【问题标题】:Execution failed for task ':app:kaptGenerateStubsDebugKotlin' after android studio V3.1.1 updateandroid studio V3.1.1 更新后任务 ':app:kaptGenerateStubsDebugKotlin' 执行失败
【发布时间】:2018-09-24 16:00:33
【问题描述】:

我刚刚将 android studio 更新到 V3.1.1。然后我的程序出错了。 编译程序时出现两个错误:

  1. “运行构建”中的一个:

    org.gradle.api.tasks.TaskExecutionException: 任务':app:kaptGenerateStubsDebugKotlin'执行失败

  1. Java 中的另一个编译器:

java.lang.ClassNotFoundException: org.jetbrains.kotlin.resolve.checkers.SimpleDeclarationChecker enter image description here

这是我的毕业作品:

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'

}

【问题讨论】:

  • 您尝试过干净的构建吗? (又名重建)
  • 是的,但是 clean&rebuild 没有用。
  • 又失败了,还是一样的错误
  • 打开 /gradle/wrapper/gradle-wrapper.properties 并阅读 Gradle 版本。它应该至少为 4.4。如果这不起作用,请尝试 4.6。

标签: android android-update-sdk


【解决方案1】:

我遇到了同样的错误,并通过在我的项目 build.gradle 中将 kotlin 更新到最新版本(1.5.31)来解决:

buildscript {
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.31"
    }
}

【讨论】:

    【解决方案2】:

    我正在做测试项目。在 Kotlin 中使用 dagger 并且此任务失败是一个障碍。

    我尝试了很多方法但错误消息没有意义,第二天我开始将类复制到一个新项目并发现问题是由于匕首并且还将Moshi注释@JsonClass(generateAdapter = true)java类转换为Kotlin。

    MoviesViewModel @Inject constructor(private val movieService: MovieService): ViewModel()

    然后:)

    【讨论】:

      【解决方案3】:

      好吧,我终于克服了这个问题。 当我使用--stacktrace 时,我发现:app:kaptDebugKotlin 是BUILDING an android program 中的一个程序。 --stacktrace result picture

      我在这个:app:kaptDebugKotlin 过程中收到错误java.lang.ClassNotFoundException: org.jetbrains.kotlin.resolve.checkers.SimpleDeclarationChecker

      我怀疑 kotlin 实现中有什么新东西,所以我将我的 kotlin_version 从 1.2.21 更新到 1.2.30。

      然后我得到更清晰的错误。那就是room 参数错误。 room error

      所以我在 SQL 查询中将arg0 更改为parameter name in Dao functions

      终于成功了。

      【讨论】:

      • @resress:我是android dev的初学者,你能解释一下如何使用--stacktrace吗?因为我有同样的错误,但仍然不适合我。
      • ./gradlew build --stacktrace
      • 更新 kotlin 版本有帮助。
      猜你喜欢
      • 2017-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-23
      • 2016-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多