J'utilise Android Studio 3.2 Beta5 pour migrer mon projet vers AndroidX . Lorsque je reconstruis mon application, j'ai eu ces erreurs:
ERREUR: [TAG] Impossible de résoudre la variable '$ {animal.sniffer.version}'
ERREUR: [TAG] Impossible de résoudre la variable '$ {junit.version}'
Full clean & reconstruire n'a pas fonctionné! Quelqu'un sait comment réparer ceci? Aidez-moi, s'il vous plaît.
gradle.properties
Android.enableJetifier=true
Android.useAndroidX=true
build.gradle
buildscript {
repositories {
google()
jcenter()
mavenCentral()
maven { url 'https://maven.fabric.io/public' }
maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
}
dependencies {
classpath 'com.Android.tools.build:gradle:3.2.0-beta05'
classpath 'com.google.gms:google-services:4.0.1'
classpath "io.realm:realm-gradle-plugin:5.3.1"
classpath 'io.fabric.tools:gradle:1.25.4'
classpath 'com.google.firebase:firebase-plugins:1.1.5'
}
}
allprojects {
repositories {
google()
jcenter()
mavenCentral()
maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
app/build.gradle
apply plugin: 'com.Android.application'
apply plugin: 'realm-Android'
apply plugin: 'io.fabric'
apply plugin: 'com.google.firebase.firebase-perf'
Android {
compileSdkVersion 28
buildToolsVersion "28.0.0"
defaultConfig {
applicationId "com.iceteaviet.fastfoodfinder"
minSdkVersion 16
targetSdkVersion 28
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
debug {
}
}
aaptOptions {
cruncherEnabled = false
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
testImplementation 'junit:junit:4.12'
implementation 'com.jakewharton:butterknife:9.0.0-SNAPSHOT'
implementation 'androidx.appcompat:appcompat:1.0.0-rc01'
implementation 'com.google.Android.material:material:1.0.0-rc01'
implementation 'androidx.legacy:legacy-support-v4:1.0.0-rc01'
implementation 'androidx.cardview:cardview:1.0.0-rc01'
implementation 'com.google.maps.Android:android-maps-utils:0.5'
implementation 'com.google.Android.gms:play-services-maps:15.0.1'
implementation 'com.google.Android.gms:play-services-location:15.0.1'
implementation 'com.google.firebase:firebase-core:16.0.1'
implementation 'com.google.firebase:firebase-database:16.0.1'
implementation 'com.google.firebase:firebase-auth:16.0.1'
implementation 'com.google.Android.gms:play-services-auth:15.0.1'
implementation 'com.github.bumptech.glide:glide:4.7.1'
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
implementation 'org.greenrobot:eventbus:3.1.1'
implementation 'de.hdodenhof:circleimageview:2.2.0'
implementation 'io.realm:realm-Android-library:5.3.1'
implementation 'com.facebook.Android:facebook-Android-sdk:4.34.0'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
implementation 'io.reactivex.rxjava2:rxjava:2.0.2'
implementation 'androidx.multidex:multidex:2.0.0'
implementation 'com.crashlytics.sdk.Android:crashlytics:2.9.4'
implementation 'com.google.firebase:firebase-perf:16.0.0'
implementation 'com.jakewharton.timber:timber:4.7.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-SNAPSHOT'
annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1'
}
apply plugin: 'com.google.gms.google-services'
Il semble que ce soit le problème Glide.
J'ai eu la même erreur et je viens de mettre à jour les dépendances de Glide à 4.8 et il n'y a pas d'erreurs de construction.
Kotlin:
// Glide
def glide_version = "4.8.0"
implementation "com.github.bumptech.glide:glide:$glide_version"
kapt "com.github.bumptech.glide:compiler:$glide_version"
Java:
// Glide
def glide_version = "4.8.0"
implementation "com.github.bumptech.glide:glide:$glide_version"
annotationProcessor "com.github.bumptech.glide:compiler:$glide_version"
Assurez-vous d'avoir activé dans votre fichier gradle.properties:
Android.useAndroidX=true
Android.enableJetifier=true
Source: https://github.com/bumptech/glide/issues/3124
J'espère que ceci vous aidera!
Ajout de support de Java 8 à build.gradle fichier problème résolu pour moi
Android {
...
//Add the following configuration in order to target Java 8.
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
Supprimer le testInstrumentationRunner a fonctionné pour moi:
defaultConfig {
...
...
// testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
J'ai eu la même erreur après la mise à jour de mon fichier build.gradle avec dépendances AndroidX Test . Il s'avère que j'ai oublié de supprimer l'ancienne dépendance Junit. Donc, pour moi, le correctif consistait simplement à supprimer la dépendance suivante:
dependencies {
...
testImplementation 'junit:junit:4.12'
}
Essayez de supprimer cette ligne:
maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
de la section buildscript/repositories de votre fichier build.gradle.
Lorsque j'ai ajouté cette ligne, j'ai eu l'erreur que vous avez décrite. Quand je l'ai enlevé, pas plus. Cette ligne ne doit figurer que dans la section allprojects/repositories.
Essayez de définir Android.enableJetifier = false dans gradle.properties. Puis invalider les caches/redémarrer ... dans Android Studio
Allez dans le fichier et cliquez sur Invalidate caches et redémarrez.
Après le redémarrage, vous augmentez la version minimale du SDK dans le fichier build.gradle
de votre application.
J'ai résolu ce problème en mettant à jour les dernières dépendances de Firebase.
Si vous utilisez Kotlin
, le problème s'affichera si vous n'utilisez pas la version kapt
pour tout processeur d'annotation utilisé dans le projet.
Comme @Vince a mentionné le cas avec Glide
, cela pourrait arriver avec Dagger2
, Butterknife
, etc.
Si vous utilisez à la fois Java
et Kotlin
, vous devez conserver les deux dépendances, comme suit ($glideVersion
est une version prédéfinie de Glide
):
implementation "com.github.bumptech.glide:glide:$glideVersion"
annotationProcessor "com.github.bumptech.glide:compiler:$glideVersion"
kapt "com.github.bumptech.glide:compiler:$glideVersion"
Si vous êtes sur un projet Kotlin
seulement, la dépendance kapt
devrait fonctionner seule.
MODIFIER
.__ Une autre chose que vous devriez avoir à l'esprit est si vous utilisez déjà Androidx
. Androidx
est un excellent refactor, mais lors de sa migration, certaines de vos dépendances peuvent s'effondrer. Les bibliothèques principales sont déjà mises à jour en Androidx
, mais certaines d'entre elles ne le sont pas et ne le feront même pas.
Si le problème ne disparaît pas avec la solution fournie ci-dessus, vous pouvez consulter vos dépendances et vous assurer qu'elles utilisent également la variable Androidx
.
Le correctif est dans 4.2.0, utilisez la version supérieure de google gms jar.
Essayez de changer:
classpath 'com.google.gms: google-services: 4.0.1'
par cette version:
classpath 'com.google.gms: google-services: 4.2.0'
J'espère que ça marche ...