任务':app:kaptDebugKotlin'的执行失败。干净的时候

时间:2018-10-09 04:51:33

标签: android gradle kotlin android-gradle

我对使用cmd建立项目有疑问。当我使用android studio构建项目时可以,但是当我清理项目时,使用cmd进行构建会出现错误

此命令:

  

gradlew assembleDebug

此错误:

  

失败:构建失败,并出现异常。

     
    

*出了什么问题:

         

任务':app:kaptDebugKotlin'的执行失败。

         

内部编译器错误。请参阅日志以获取更多详细信息

  
     

e:java.util.ServiceConfigurationError:   javax.annotation.processing.Processor:   android.databinding.annotationprocessor.ProcessDataBinding无法执行   获得公共的无参数构造函数           在java.base / java.util.ServiceLoader.fail(ServiceLoader.java:581)           在java.base / java.util.ServiceLoader.getConstructor(ServiceLoader.java:672)           在java.base / java.util.ServiceLoader.access $ 1000(ServiceLoader.java:390)           在java.base / java.util.ServiceLoader $ LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1232)           在java.base / java.util.ServiceLoader $ LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1264)   ...

我的应用gradle:

    apply plugin: 'com.android.application'

    apply plugin: 'kotlin-android'

    apply plugin: 'kotlin-android-extensions'

    apply plugin: 'kotlin-kapt'

    android {
        compileSdkVersion 28
        defaultConfig {
            applicationId "com.example.robot.mvvm"
            minSdkVersion 21
            targetSdkVersion 28
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
            multiDexEnabled true
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
        dataBinding {
            enabled = true
        }
        kapt {
            useBuildCache = true
        }
    }

    dependencies {
        def lifecycle_version = "2.0.0"
        def retrofit_version = '2.4.0'
        def okhttp_version = '3.11.0'
        def nav_version = "1.0.0-alpha06"

        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
        testImplementation 'junit:junit:4.12'

        //android KTX
        implementation 'androidx.core:core-ktx:1.0.0'
        implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
        implementation 'androidx.appcompat:appcompat:1.0.0'
        implementation 'com.google.android.material:material:1.0.0'
        androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
        androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'

        implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
        implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version"
        implementation "androidx.lifecycle:lifecycle-livedata:$lifecycle_version"

        //retrofit2
        kapt "com.squareup.retrofit2:retrofit:$retrofit_version"
        kapt "com.squareup.retrofit2:converter-gson:$retrofit_version"
        kapt "com.squareup.retrofit2:adapter-rxjava2:$retrofit_version"

        //okhttp interceptor
        kapt "com.squareup.okhttp3:logging-interceptor:$okhttp_version"

        //Firebase
        implementation 'com.google.firebase:firebase-core:16.0.4'
        implementation 'com.crashlytics.sdk.android:crashlytics:2.9.5'
        implementation 'com.google.firebase:firebase-messaging:17.3.3'

        implementation "android.arch.navigation:navigation-fragment:$nav_version"
        implementation "android.arch.navigation:navigation-ui:$nav_version"

        // optional - Test helpers
        androidTestImplementation "android.arch.navigation:navigation-testing:$nav_version"


        implementation 'androidx.multidex:multidex:2.0.0'
    }

我的项目成绩:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext.kotlin_version = '1.2.71'
    repositories {
        google()
        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.1.0' // google-services plugin

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
        jcenter()
    }
}

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

请帮帮我。谢谢

2 个答案:

答案 0 :(得分:2)

我找到了解决办法
使用Java SE 8

答案 1 :(得分:0)

虽然接受的答案不是很有益,但确实为我指明了正确的方向。我的测试在Android Studio内部通过,但未从命令行通过,因为Android Studio在/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home使用捆绑的JDK。通过编辑gradle.properties使其包含以下行,我将gradlew配置为使用相同的JDK:

org.gradle.java.home=/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home

现在我的测试通过Android Studio并从命令行通过。