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.
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
}
And my app build is:
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
Any advice please? Thank you
Remove apply plugin: 'io.fabric'
help me, but how return crashlytics...
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.
Basically, the issue occurs when setting ext.enableCrashlytics = true
in your build.gradle
file using io.fabric.tools:gradle:1.31.2
fabric plugin.
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
by
def enableCrashlytics = // comes from somewhere
if (!enableCrashlytics) {
ext.enableCrashlytics = false
}
The behavior remains the same since crashlytics is enabled by default.
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.
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.
Fabric is deprecated use Firebase instead. Refer to this page on how to migrate https://firebase.google.com/docs/crashlytics/get-started?platform=android
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With