java - 如何解决 : Error:Execution failed for task ':app:kaptDebugKotlin' ?

标签 java android kotlin

请帮助我几天来我一直在盯着同样的错误。我正在运行 android studio 2.3(我在 android studio 3.0 上也遇到过这个问题)。

这是我的消息中显示的内容:

Error:Execution failed for task ':app:kaptDebugKotlin'. Internal compiler error. See log for more details



这是我的日志为我提供的更多详细信息:

2017-09-01 21:09:57,768 [34977075] INFO - roid.sdk.MessageBuildingSdkLog - Exception from KotlinOutputParser 2017-09-01 21:09:57,771 [34977078] INFO - roid.sdk.MessageBuildingSdkLog - com.android.ide.common.blame.Message.(com.android.ide.common.blame.Message$Kind, java.lang.String, java.lang.String, com.google.common.collect.ImmutableList) java.lang.NoSuchMethodException: com.android.ide.common.blame.Message.(com.android.ide.common.blame.Message$Kind, java.lang.String, java.lang.String, com.google.common.collect.ImmutableList) at java.lang.Class.getConstructor0(Class.java:3082) at java.lang.Class.getConstructor(Class.java:1825) at org.jetbrains.kotlin.android.KotlinOutputParserHelper$simpleMessageConstructor$2.invoke(KotlinOutputParserHelper.kt:171) at org.jetbrains.kotlin.android.KotlinOutputParserHelper$simpleMessageConstructor$2.invoke(KotlinOutputParserHelper.kt:143) at kotlin.SynchronizedLazyImpl.getValue(Lazy.kt:130) at org.jetbrains.kotlin.android.KotlinOutputParserHelper.getSimpleMessageConstructor(KotlinOutputParserHelper.kt) at org.jetbrains.kotlin.android.KotlinOutputParserHelper.createNewMessage(KotlinOutputParserHelper.kt:272) at org.jetbrains.kotlin.android.KotlinOutputParserHelper.createMessage(KotlinOutputParserHelper.kt:250) at org.jetbrains.kotlin.android.KotlinOutputParserHelper.createMessage$default(KotlinOutputParserHelper.kt:244) at org.jetbrains.kotlin.android.KotlinOutputParserHelperKt.parse(KotlinOutputParserHelper.kt:41) at org.jetbrains.kotlin.android.KotlinOutputParser.parse(KotlinOutputParser.java:28) at com.android.ide.common.blame.parser.ToolOutputParser.parseToolOutput(ToolOutputParser.java:86) at com.android.tools.idea.gradle.output.parser.BuildOutputParser.parseGradleOutput(BuildOutputParser.java:43) at com.android.tools.idea.gradle.project.build.invoker.GradleTasksExecutor$GradleTasksExecutorImpl.lambda$collectMessages$5(GradleTasksExecutor.java:516) at com.intellij.openapi.application.impl.ApplicationImpl$2.run(ApplicationImpl.java:307) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)



我的顶级 build.gradle:
    // Top-level build file where you can add configuration options common to all sub-projects/modules.

    buildscript {
        ext.kotlin_version = '1.1.4-3'
        repositories {
            google()
            jcenter()
            maven {
                url 'https://www.testfairy.com/maven'
            }
            mavenCentral()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:2.3.3'
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
            classpath 'com.testfairy.plugins.gradle:testfairy:1.+'
            classpath 'me.tatarka:gradle-retrolambda:3.3.0'
            //classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
        }
    }

    allprojects {
        repositories {
            google()
            jcenter()
            maven { url "https://dl.bintray.com/aurae/maven" }
            maven { url "https://maven.google.com" }
        }
    }

    task clean(type: Delete) {
        delete rootProject.buildDir
    }

我的应用程序级别 build.gradle:
应用插件:'com.android.application'
应用插件:'kotlin-android'
应用插件:'kotlin-android-extensions'
应用插件:'kotlin-kapt'
    apply plugin: 'io.fabric'
    apply plugin: 'testfairy'
    apply plugin: 'me.tatarka.retrolambda'

    android {
        compileSdkVersion COMPILE_SDK_VERSION
        buildToolsVersion BUILD_TOOLS_VERSION

        defaultConfig {
            applicationId "com.audiopartnership.edgecontroller"
            minSdkVersion MIN_SDK_VERSION
            targetSdkVersion TARGET_SDK_VERSION
            versionCode 9
            versionName "0.0.12"
            vectorDrawables.useSupportLibrary = true
            multiDexEnabled true
            buildConfigField "String", "BASE_SSID", "\"Setup:\""
            buildConfigField "String", "DEFAULT_UNIT_NAME", "\"CZN\""
            buildConfigField "String", "CAST_URL", "\"http://www.google.com/cast/learn/audio/\""

        }

        testfairyConfig {
            apiKey getMyApiKey("testfairy")
            autoUpdate true
        }

        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            }

            beta {
                applicationIdSuffix ".beta"
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            }

            debug {
                debuggable true
                applicationIdSuffix ".debug"
            }
        }

        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }

        dataBinding {
            enabled = true
        }
    }

    androidExtensions {
        experimental = true
    }

    buildscript {
        repositories {
            jcenter()
            maven { url 'https://maven.fabric.io/public' }
        }

        dependencies {
            classpath 'io.fabric.tools:gradle:1.+'
        }
    }




    repositories {
        jcenter()
        maven { url 'https://maven.fabric.io/public' }
    }







    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        testCompile 'junit:junit:4.12'
        testCompile 'org.mockito:mockito-core:1.10.19'


        compile project(':smoip-cli')
        compile project(':cable-cli')
        compile project(':maskable-layout')
        compile project(':radio')


        compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"
        kapt 'com.android.databinding:compiler:2.3.3'

        compile "com.android.support:appcompat-v7:$SUPPORT_VERSION"
        compile "com.android.support:design:$SUPPORT_VERSION"
        compile "com.android.support:support-v4:$SUPPORT_VERSION"
        compile "com.android.support:percent:$SUPPORT_VERSION"
        compile "com.android.support:palette-v7:$SUPPORT_VERSION"

        compile 'me.relex:circleindicator:1.1.8@aar'
        compile 'uk.co.chrisjenx:calligraphy:2.2.0'
        compile "com.squareup.picasso:picasso:$PICASSO_VERSION"
        compile "io.reactivex:rxandroid:$RXANDROID_VERSION"
        compile 'com.squareup.okhttp3:okhttp:3.2.0'
        compile "com.github.aurae:rxbonjour:0.4.0"
        compile "com.polidea.rxandroidble:rxandroidble:1.3.3"

        compile "com.squareup.retrofit2:retrofit:$RETROFIT_VERSION"
        compile "com.squareup.retrofit2:converter-gson:$RETROFIT_VERSION"
        compile "com.squareup.retrofit2:adapter-rxjava:$RETROFIT_VERSION"

        compile 'com.jakewharton:butterknife:8.5.1'
        annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
        compile 'com.johnpetitto.validator:validator:1.0.2'
        testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
        debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5'
        betaCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
        debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5'
        releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
        compile('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
            transitive = true;
        }

        compile project(path: ':cable-cli')
        compile 'com.android.support.constraint:constraint-layout:1.0.2'
    }


    //return a MY API KEY from a properties file.
    def getMyApiKey(String property) {
        Properties properties = new Properties()
        properties.load(new FileInputStream(".apikeys"))
        return "\"" + properties.getProperty(property) + "\""
    }

最佳答案

我知道这是一篇旧帖子,但经过一番搜索,我总是最终打开这个问题。因此,我认为分享一种解决此问题的方法是件好事。

首先,我认为这是因为我对配置进行了一些更改。主要是更改我使用的一些实现版本并更新 kotlin 版本。
我所做的其他更改是将 glide 编译器的 annotationProcessor 更改为 kapt。

因为错误是

Error: execution failed for task ':app:kaptDebugKotlin'. Internal compiler error. See log for more details



我以为是因为这种变化——但事实并非如此。

我所做的主要更改,甚至认为这可能不是问题,就是将我的项目更新为 JAVA 13

所以为了解决这个问题,我将它改回 Android Studio JDK:

先去文件 -> 项目结构... See image for details

接下来,在 SDK位置选项卡(在左侧),更改 JDK位置到“WhereYourAndroidStudioIsInstalled\Android Studio\jre”See image for details

最后,重建项目并为我工作,错误消失了:

See image for details

关于java - 如何解决 : Error:Execution failed for task ':app:kaptDebugKotlin' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46007641/

相关文章:

android - RFID在BluetoothSocket中获得串行连接

kotlin - 如何在匿名类中引用自己?

Java 整数类型常量声明 - 原语还是对象?

java - 变量未在 try catch block 中初始化 `finally`

类似方法参数中的 Java 可选参数

android - 如何在 Android 中没有 SMS_READ 或类似权限的情况下发送短信并接收结果

java - 从 'getter' 方法返回值的最佳方法

php - php 中 undefined index

android - 刷新项目列表的 MutableLiveData

android - android PhoneStateListener 是否在后台运行?