的KotlinJvmAndroidCompilation

的KotlinJvmAndroidCompilation

本文介绍了找不到名称为"debug"的KotlinJvmAndroidCompilation的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将项目更新到最新版本v6.2.2,但是我遇到了下一个错误:

I'm trying to update my project to the last gradle, v6.2.2, but I'm facing the next error:

A problem occurred configuring project ':app'.
> Failed to notify project evaluation listener.
   > Cannot query the value of this provider because it has no value available.
   > KotlinJvmAndroidCompilation with name 'debug' not found.

下一个是我的项目build.gradle:

My project build.gradle is the next:

buildscript {

    ext.gradleToolsVersion = '3.6.1'
    ext.kotlinVersion = "1.3.70"
    ext.googleServicesVersion = "4.3.3"
    ext.butterknifeGradlePluginVersion = "10.2.0"
    ext.fabricToolsGradleVersion = "1.31.2"

    repositories {
        google()
        jcenter()
        mavenCentral()
        maven {
            url "https://plugins.gradle.org/m2/"
        }
        maven {
            url 'https://maven.fabric.io/public'
        }
        maven { url 'https://jitpack.io' }
    }

    dependencies {
        classpath "com.android.tools.build:gradle:3.6.1"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
        classpath "com.google.gms:google-services:$googleServicesVersion" // Google Services plugin
        classpath "com.jakewharton:butterknife-gradle-plugin:$butterknifeGradlePluginVersion"
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files

        classpath "io.fabric.tools:gradle:$fabricToolsGradleVersion"  // Crashlytics plugin

    }
}

allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
        maven {
            url "https://plugins.gradle.org/m2/"
        }
        maven { url 'https://jitpack.io' }
        maven {
            url "http://dl.bintray.com/electronicid/maven/"
        }
    }
}

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

我的应用程序构建为:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'com.jakewharton.butterknife'
apply plugin: 'io.fabric'

// Touch Library Versions Here
ext {
    kotlinVersion = "1.3.70"
    androidxAppcompatVersion = '1.1.0'
    corektxAppcompatVersion = '1.2.0'
    fragmentktxAppcompatVersion = '1.2.2'
    androidxVersion = '1.1.0'
    multidexVersion = '2.0.1'
    preferenceVersion = '1.1.0'
    constraintLayoutVersion = '1.1.3'
    retrofitVersion = '2.7.1'
    butterknifeVersion = '10.2.1'
    okHttpVersion = '4.4.0'
    gsonVersion = '2.8.6'
    stethoVersion = '1.5.1'
    rxJavaVersion = '2.2.15'
    rxAndroidVersion = '2.1.1'
    lifecycleVersion = '2.2.0'
    kotlinCoroutineVersion = '1.3.2'
    androidSlidingUpPanelVersion = '4.0.0'
    glideVersion = '4.11.0'
    stickHeaderGridVersion = '0.9.7'
    shimmerLayout = '2.1.0'
    videoidSdkVersion = '5.2.1'
    ottoEventBusVersion = '1.3.8'
    cryptoPrefsVersion = '1.3.2.5'
    blurryVersion = '3.0.0'
    lottieVersion = '3.3.1'
    firebaseCoreVersion = '17.2.3'
    firebaseAnalyticsVersion = '17.2.3'
    firebaseMessagingVersion = '20.1.2'
    firebaseCrashVersion = '16.2.1'
    crashlyticsVersion = '2.10.1'
    circleimageviewVersion = '3.1.0'
    fotoapparatVersion = '2.7.0'
    dexterVersion = '6.0.2'
    ucropVersion = '2.2.4-native'
    commonTextVersion = '1.8'
    guavaVersion = '28.1-android'
    timberVersion = '4.7.1'
    discreteScrollViewVersion = '1.4.9'
    slideUpVersion = '2.2.8'
    biometricVersion = '1.0.1'
    playServicesLocationVersion = '17.0.0'
}

def apikeyPropertiesFile = rootProject.file("apikey.properties")
def apikeyProperties = new Properties()
apikeyProperties.load(new FileInputStream(apikeyPropertiesFile))

def keystorePropertiesFile = rootProject.file("keystore.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))


android {

    compileSdkVersion 29
    buildToolsVersion "29.0.2"

    defaultPublishConfig 'release'
    publishNonDefault true

    defaultConfig {
        applicationId "com.planunnum"
        minSdkVersion 21
        targetSdkVersion 29
        versionCode 7084
        versionName '7.4.0'
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        multiDexEnabled = true

        // SECRET KEY TO ENCRYPT/DECRYPT SHARED PREFERENCES
        buildConfigField("String", "SHA_512_SECURE_KEY", apikeyProperties['SHA_512_SECURE_KEY'])
    }

    signingConfigs {

        release {
            storeFile file(keystoreProperties['RELEASE_STORE_FILE'])
            keyAlias = keystoreProperties['RELEASE_KEY_ALIAS']
            storePassword keystoreProperties['RELEASE_STORE_PASSWORD']
            keyPassword keystoreProperties['RELEASE_KEY_PASSWORD']
        }

    }

    buildTypes {
        debug {
            debuggable true
            minifyEnabled false
            buildConfigField "boolean", "USE_CRASHLYTICS", "true"
            ext.enableCrashlytics = true
            buildConfigField "boolean", "USE_MOCKS", "false"
        }
        release {
            debuggable false
            minifyEnabled true
            proguardFiles getDefaultProguardFile(
                    'proguard-android.txt'),
                    // List additional ProGuard rules for the given build type here. By default,
                    // Android Studio creates and includes an empty rules file for you (located
                    // at the root directory of each module).
                    'proguard-rules.pro'

            signingConfig signingConfigs.release

            // enable crashlytics
            buildConfigField "boolean", "USE_CRASHLYTICS", "true"
            ext.enableCrashlytics = true
            // Disable mocks
            buildConfigField "boolean", "USE_MOCKS", "false"
        }
        mocks {
            debuggable true
            minifyEnabled false

            buildConfigField "boolean", "USE_CRASHLYTICS", "true"
            ext.enableCrashlytics = true // Must be false, but testers are human too :(
            buildConfigField "boolean", "USE_MOCKS", "true"
        }
    }

    // Configure only for each module that uses Java 8
    // language features (either in its source code or
    // through dependencies).
    // Butterknife requires Java 8.
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    // For Kotlin projects
    kotlinOptions {
        jvmTarget = "1.8"
    }

    packagingOptions {
        // exclude ARMEABI native so file, ARMEABI has been removed in NDK r17.
        exclude "lib/armeabi/**"
    }

    // Change behaivour to rename apk deployed
    applicationVariants.all { variant ->
        variant.outputs.all { output ->
            def project = "plannum"
            def SEP = "_"
            def buildType = variant.variantData.variantConfiguration.buildType.name
            def versionCode = variant.versionName
            def buildCode = variant.versionCode
            def date = new Date()
            def formattedDate = date.format('ddMMyy_HHmm')

            def newApkName = project + SEP + buildType + SEP + versionCode + SEP + buildCode + SEP + formattedDate + ".apk"

            outputFileName = new File(newApkName)
        }
    }

}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation "org.jetbrains.kotlin:kotlin-stdlib-jre8:${kotlinVersion}"
    implementation "org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}"

    // BASE
    implementation "androidx.appcompat:appcompat:${androidxAppcompatVersion}"
    implementation "androidx.core:core:${corektxAppcompatVersion}"
    implementation "androidx.core:core-ktx:${corektxAppcompatVersion}"
    implementation "androidx.fragment:fragment-ktx:${fragmentktxAppcompatVersion}"
    implementation "androidx.constraintlayout:constraintlayout:${constraintLayoutVersion}"
    implementation "androidx.preference:preference-ktx:${preferenceVersion}"
    implementation "androidx.biometric:biometric:${biometricVersion}"
    implementation "androidx.multidex:multidex:${multidexVersion}"


    // TEST
    testImplementation 'junit:junit:4.13'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

    // BUTTERKNIFE
    implementation "com.jakewharton:butterknife:${butterknifeVersion}"
    kapt "com.jakewharton:butterknife-compiler:${butterknifeVersion}"

    // NETWORK
    implementation "com.squareup.retrofit2:retrofit:${retrofitVersion}"
    implementation "com.squareup.retrofit2:converter-scalars:${retrofitVersion}"
    implementation "com.squareup.retrofit2:converter-gson:${retrofitVersion}"
    implementation "com.squareup.okhttp3:okhttp:${okHttpVersion}"
    implementation "com.squareup.okhttp3:logging-interceptor:${okHttpVersion}"
    implementation "com.google.code.gson:gson:${gsonVersion}"
    implementation "com.facebook.stetho:stetho:${stethoVersion}"
    implementation "com.facebook.stetho:stetho-okhttp3:${stethoVersion}"

    // KOTLIN COROUTINES
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlinCoroutineVersion"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinCoroutineVersion"

    // LIFECYCLE VIEWMODEL AND LIVEDATA
    implementation "androidx.lifecycle:lifecycle-extensions:${lifecycleVersion}"
    implementation "androidx.lifecycle:lifecycle-common-java8:${lifecycleVersion}"

    // SLIDING PANELS
    implementation "com.github.mancj:SlideUp-Android:${slideUpVersion}"
    implementation "com.yarolegovich:discrete-scrollview:${discreteScrollViewVersion}"
    implementation "com.github.hannesa2:AndroidSlidingUpPanel:${androidSlidingUpPanelVersion}"
    implementation "com.daimajia.swipelayout:library:1.2.0@aar"

    // IMAGE LOADER
    implementation "com.github.bumptech.glide:glide:${glideVersion}"
    kapt "com.github.bumptech.glide:compiler:${glideVersion}"

    // STICY HEADERS
    implementation "com.codewaves.stickyheadergrid:stickyheadergrid:${stickHeaderGridVersion}"

    // SHIMMER LAYOUTS
    implementation "io.supercharge:shimmerlayout:${shimmerLayout}"

    // VIDEOID
    implementation "eu.electronicid.android:video-sdk:${videoidSdkVersion}"
    implementation "eu.electronicid.android:videoid-sdk:${videoidSdkVersion}"

    // OTTO EVENT BUS
    implementation "com.squareup:otto:${ottoEventBusVersion}"

    // CRYPTOPREFS TO SAVE/LOAD DATA ON SHAREDPREFERENCES
    implementation "com.github.AndreaCioccarelli:CryptoPrefs:${cryptoPrefsVersion}"


    // BLURRY LAYOUTS
    implementation "jp.wasabeef:blurry:${blurryVersion}"

    // LOTTIE FOR LOGO SPLASHSCREEN
    implementation "com.airbnb.android:lottie:${lottieVersion}"

    // FCM
    implementation "com.google.firebase:firebase-core:${firebaseCoreVersion}"
    implementation "com.google.firebase:firebase-analytics:${firebaseAnalyticsVersion}"
    implementation "com.google.firebase:firebase-messaging:${firebaseMessagingVersion}"

    implementation "com.google.firebase:firebase-crash:${firebaseCrashVersion}"
    implementation "com.crashlytics.sdk.android:crashlytics:${crashlyticsVersion}"

    // CIRCLE IMAGE VIEWS
    implementation "de.hdodenhof:circleimageview:${circleimageviewVersion}"

    // CAPTURE PHOTOS
    implementation "io.fotoapparat:fotoapparat:${fotoapparatVersion}"

    // REACTIVE PROGRAMMING RXJAVA & RXANDROID
    implementation "io.reactivex.rxjava2:rxjava:${rxJavaVersion}"
    implementation "io.reactivex.rxjava2:rxandroid:${rxAndroidVersion}"

    // REQUEST PERMISSIONS
    implementation "com.karumi:dexter:${dexterVersion}"

    // CROPPING IMAGES
    implementation "com.github.yalantis:ucrop:${ucropVersion}"

    // COMMONS TEXT UTILS
    implementation "org.apache.commons:commons-text:${commonTextVersion}"

    // GUAVA
    implementation "com.google.guava:guava:${guavaVersion}"

    // BETTER LOG MESSAGES
    implementation "com.jakewharton.timber:timber:${timberVersion}"

    // LOCATION
    implementation "com.google.android.gms:play-services-location:${playServicesLocationVersion}"

    implementation project(path: ':everid-release_2.0')

}

apply plugin: 'com.google.gms.google-services'  // Google Play services Gradle plugin

有什么建议吗?谢谢

推荐答案

我也遇到了同样的问题,事实证明,问题的原因是Fabric gradle插件(crashlytics)而不是gradle本身.

I've faced the same issue and it turned out that the cause of the issue is the fabric gradle plugin (crashlytics) rather than gradle itself.

基本上,使用io.fabric.tools:gradle:1.31.2结构插件在build.gradle文件中设置ext.enableCrashlytics = true时会发生此问题.

Basically, the issue occurs when setting ext.enableCrashlytics = true in your build.gradle file using io.fabric.tools:gradle:1.31.2 fabric plugin.

您必须避免将ext.enableCrashlytics显式设置为true(可以使用false).

You have to avoid explicitly setting ext.enableCrashlytics to true (false is okay).

例如,您可以替换以下代码

For example, you can replace the following code

def enableCrashlytics = // comes from somewhere
ext.enableCrashlytics = enableCrashlytics

作者

def enableCrashlytics = // comes from somewhere
if (!enableCrashlytics) {
    ext.enableCrashlytics = false
}

由于默认情况下启用了crashlytics,因此行为保持不变.

The behavior remains the same since crashlytics is enabled by default.

作为替代方案,您可以还原为使用1.31.0的效果很好,但是我不建议您这样做,因为最新版本包含几个关键的错误修复.

As an alternative, you can revert to using 1.31.0 which works fine, but I'd not recommend doing it since the latest version contains a couple of critical bug fixes.

此外,由于Google为很快放弃对Fabric的支持,此问题可能无法解决.

Also, you can consider migrating to Firebase Crashlytics (currently in beta) since Google is dropping support for Fabric soon and this issue might not get fixed.

这篇关于找不到名称为"debug"的KotlinJvmAndroidCompilation的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-05 19:23