android - 任务 ':app:kaptDebugKotlin' 执行失败。清理构建时

标签 android gradle kotlin android-gradle-plugin

我对使用 cmd 构建项目有疑问。当我使用 android studio 构建项目时没问题,但是当我清理项目然后使用 cmd 构建时出现错误

这个命令:

gradlew assembleDebug

此错误:

FAILURE: Build failed with an exception.

*What went wrong:

Execution failed for task ':app:kaptDebugKotlin'.

Internal compiler error. See log for more details

e: java.util.ServiceConfigurationError: javax.annotation.processing.Processor: android.databinding.annotationprocessor.ProcessDataBinding 无法 获取公共(public)无参数构造函数 在 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'
    }

我的项目gradle:

// 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
}

请帮帮我。谢谢

最佳答案

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

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

现在我的测试通过了 Android Studio 内部和命令行。

关于android - 任务 ':app:kaptDebugKotlin' 执行失败。清理构建时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52713575/

相关文章:

Android Color - primaryColorDark 比 primaryColor 深多少?

Android 默认的 Http 客户端

android - Appodeal android示例错误

android - 如果 Android Gradle Build 中不存在默认属性文件,我该如何创建它

android - Android:mobilenet_v1_1.0_224.tflite模型未返回边界框信息

android - Xamarin.Droid 无法从 uint 转换为 Android.content.Res.colorStateList

android - 如何修复错误 :WARNING in butterknife. Unbinder.<clinit>:()V: 定义静态接口(interface)方法需要 --min-sdk-version >= 24

android-studio - android studios/gradle 同步启动时多个重复​​的 Openjdk 二进制文件失败,96% RAM

android - 是否可以使用动态功能模块和 Koin 构建项目?

java - Android - Viewmodel 变大