问题描述
我正在尝试将项目更新到最新版本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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!