Utilisation d'Android Studio 3.3 Canary 11 avec le plugin Gradle version 3.3.0-alpha11
. Il lève l'erreur suivante en essayant de synchroniser le dégradé
WARNING: API 'variant.getExternalNativeBuildTasks()' is obsolete and has been
replaced with 'variant.getExternalNativeBuildProviders()'.
It will be removed at the end of 2019.
For more information, see https://d.Android.com/r/tools/task-configuration-
avoidance
Affected Modules: app
En cliquant sur l'erreur, cela m'amène à cette ligne dans le fichier gradle
applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "${variant.name}-${variant.versionName}.apk"
}
}
De quoi ai-je besoin pour changer ici?
projet build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
mavenCentral() // jcenter() works as well because it pulls from Maven Central
maven { url "https://maven.google.com" }
google()
}
dependencies {
classpath 'com.Android.tools.build:gradle:3.3.0-alpha11'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath "io.realm:realm-gradle-plugin:4.1.1"
classpath 'com.google.gms:google-services:3.2.1'
classpath 'com.google.firebase:firebase-plugins:1.1.5'
}
}
allprojects {
repositories {
jcenter()
maven { url "https://maven.google.com" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
// Define versions in a single place
ext {
// Sdk and tools
minSdkVersion = 21
targetSdkVersion = 27
compileSdkVersion = 27
buildToolsVersion = '27.0.3'
// App dependencies
supportLibraryVersion = '27.1.1'
appCompactLibraryVersion = '27.1.1'
playServicesVersion = '15.0.1'
firebaseVersionCore = '16.0.1'
firebaseVersionPerf = '16.0.0'
firebaseVersionMessaging = '17.1.0'
//lottie
lottieVersion = '2.5.0'
}
application build.gradle
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.25.4'
}
buildscript {
repositories {
maven { url "https://maven.google.com" }
maven { url 'https://maven.fabric.io/public' }
mavenCentral()
}
dependencies {
// These docs use an open ended version so that our plugin
// can be updated quickly in response to Android tooling updates
// We recommend changing it to the latest version from our changelog:
// https://docs.fabric.io/Android/changelog.html#fabric-gradle-plugin
classpath 'io.fabric.tools:gradle:'
}
}
}
apply plugin: 'com.Android.application'
apply plugin: 'com.google.firebase.firebase-perf'
repositories {
maven { url 'https://maven.fabric.io/public' }
}
apply plugin: 'io.fabric'
apply plugin: 'realm-Android'
Android {
realm {
syncEnabled = false
}
dexOptions {
javaMaxHeapSize "4g"
}
compileSdkVersion rootProject.ext.compileSdkVersion
defaultConfig {
applicationId "example.com"
minSdkVersion rootProject.ext.minSdkVersion
multiDexEnabled true
versionCode mVersionCode
versionName mVersionName
vectorDrawables.useSupportLibrary = true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
buildTypes {
applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "${variant.name}-${variant.versionName}.apk"
}
}
release {
shrinkResources true
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
lintOptions {
disable 'MissingTranslation'
}
applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "${variant.name}-${variant.versionName}.apk"
}
}
}
debug {
shrinkResources true
minifyEnabled true
useProguard true
debuggable true
versionNameSuffix '-DEBUG'
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'debug-proguard-rules.pro'
ext.enableCrashlytics = false
crunchPngs false
}
}
flavorDimensions "default"
lintOptions {
checkReleaseBuilds false
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LGPL2.1'
}
buildToolsVersion '28.0.2'
}
configurations {
implementation.exclude group: "org.Apache.httpcomponents", module: "httpclient"
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "com.Android.support:appcompat-v7:$rootProject.appCompactLibraryVersion"
implementation "com.Android.support:support-compat:$rootProject.supportLibraryVersion"
implementation "com.Android.support:mediarouter-v7:$rootProject.supportLibraryVersion"
implementation "com.Android.support:cardview-v7:$rootProject.supportLibraryVersion"
implementation "com.Android.support:design:$rootProject.supportLibraryVersion"
api 'com.squareup.retrofit2:retrofit:2.4.0'
api 'com.squareup.okhttp3:okhttp:3.11.0'
api 'com.squareup.okhttp3:logging-interceptor:3.10.0'
implementation 'com.google.code.gson:gson:2.8.2'
implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
implementation 'com.squareup.picasso:picasso:2.5.2'
implementation 'com.squareup.retrofit2:adapter-rxjava:2.3.0'
implementation 'com.Android.support:multidex:1.0.3'
implementation 'com.daimajia.easing:library:2.0@aar'
implementation 'com.daimajia.androidanimations:library:2.3@aar'
implementation 'com.akexorcist:googledirectionlibrary:1.0.5'
implementation 'io.reactivex:rxandroid:1.2.1'
implementation 'io.reactivex:rxjava:1.3.0'
// Wifi hotspot library
implementation 'cc.mvdan.accesspoint:library:0.2.0'
implementation 'com.Android.support.constraint:constraint-layout:1.1.3'
implementation 'org.jsoup:jsoup:1.10.3'
api "com.airbnb.Android:lottie:$rootProject.lottieVersion"
implementation 'com.Android.support:support-v4:27.1.1'
implementation 'com.Android.support:recyclerview-v7:27.1.1'
testImplementation 'junit:junit:4.12'
implementation 'com.jakewharton:butterknife:8.8.1'
debugImplementation 'com.squareup.leakcanary:leakcanary-Android:1.5.4'
releaseImplementation 'com.squareup.leakcanary:leakcanary-Android-no-op:1.5.4'
implementation 'com.googlecode.libphonenumber:libphonenumber:8.2.0'
implementation "com.google.Android.gms:play-services-base:$rootProject.playServicesVersion"
implementation "com.google.Android.gms:play-services-cast-framework:$rootProject.playServicesVersion"
implementation "com.google.Android.gms:play-services-auth:$rootProject.playServicesVersion"
implementation "com.google.Android.gms:play-services-identity:$rootProject.playServicesVersion"
implementation "com.google.Android.gms:play-services-awareness:$rootProject.playServicesVersion"
implementation "com.google.Android.gms:play-services-cast:$rootProject.playServicesVersion"
implementation "com.google.Android.gms:play-services-drive:$rootProject.playServicesVersion"
implementation "com.google.Android.gms:play-services-location:$rootProject.playServicesVersion"
implementation "com.google.Android.gms:play-services-maps:$rootProject.playServicesVersion"
implementation "com.google.firebase:firebase-core:$rootProject.firebaseVersionCore"
implementation "com.google.firebase:firebase-perf:$rootProject.firebaseVersionPerf"
implementation "com.google.firebase:firebase-messaging:$rootProject.firebaseVersionMessaging"
implementation "com.google.firebase:firebase-analytics:$rootProject.firebaseVersionCore"
api('com.crashlytics.sdk.Android:crashlytics:2.8.0@aar') {
transitive = true
}
api('com.crashlytics.sdk.Android:answers:1.4.1@aar') {
transitive = true
}
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
api project(path: ':libraryBTHelper')
api project(':bkk_Rush')
debugApi 'com.amitshekhar.Android:debug-db:1.0.3'
api "org.jdeferred:jdeferred-Android-aar:1.2.6"
implementation 'com.Android.support:gridlayout-v7:27.1.1'
}
apply plugin: 'com.google.gms.google-services'
J'ai omis quelques constantes et autres informations sensibles dans le fichier app/build.gradle.
Le problème a été corrigé dans leur dernière version 'io.fabric.tools:gradle:1.28.0'
Veuillez mettre à jour vos deux outils d’étoffes Gradle avec 1.28.0
buildscript {
// ... repositories, etc. ...
dependencies {
// ...other dependencies ...
classpath 'io.fabric.tools:gradle:1.28.0'
}
}
Pour plus de détails https://github.com/firebase/firebase-Android-sdk/issues/198#issuecomment-473435453
Cela se produit après avoir mis à jour Android Studio vers la version 3.3.0. apply plugin: 'io.fabric'
est la cause. J'ai envoyé un rapport de bogue à l'équipe Firebase sur ce problème.
Vous avez 3 options:
Attendez la publication de la prochaine version du plug-in Fabric. Vérifiez la dernière version ici .
Déclassement à Android Studio 3.2.1 .
Commentez le plugin io.fabric
.
Dans build.gradle
du module de votre application:
apply plugin: 'com.Android.application'
// apply plugin: 'io.fabric' <== this plugin causes the error
Toutefois, vous pouvez toujours créer et exécuter vos projets même si cette erreur apparaît. N'y faites pas attention.
dans l'application build.gradle, rétrogradez cette version stable de gradle:
classpath 'com.Android.tools.build:gradle:3.2.1'
Cela se produit après avoir mis à jour Android Studio vers la version 3.3, solution temporaire, jusqu'à ce qu'ils le corrigent!
edit: vous n'avez pas besoin de rétrograder votre studio Android!
Vous ne savez pas quel est le problème, mais commentez les dépendances liées au problème résolues par le projet.
Si le commentaire du plugin Crashlytics
du io.fabric
sur le fichier de graduation de l'application a fonctionné temporairement
//apply plugin: 'io.fabric'
Ensuite, la mise à niveau de vos dépendances de niveaux de tissu sur le fichier de niveaux de projet résoudra définitivement le problème:
classpath 'io.fabric.tools:gradle:1.27.0'
NB: cela ne supprime pas les avertissements mais vous permet d’utiliser Crashlytics avec AS3.3 +
C'est un bogue confirmé pour Crashlytics et ils y travaillent.
https://issuetracker.google.com/issues/116408637
Cité par le destinataire de Google:
je ... @ google.com # 23 23 janv. 2019 01:40
Salut à tous,Merci pour votre patience.
Il semble que le bogue dans tous les cas provient de crashlytics et j'ai déposé un bug avec eux.
Je vous tiendrai au courant du statut.
Pour moi, mon application de débogage fonctionne correctement sur mon appareil simplement en exécutant et en ignorant l'avertissement sans commenter Crashlytics ou Fabric. Je n'ai pas essayé de produire.
Mettre à jour:
Google Issue Tracker avait marqué ce problème en tant que Wont not Fix (Infeasible) car tous les problèmes provenaient de Crashlytics, et ont laissé les corrections effectuées par l'équipe de Crashlytics (bien qu'ils soient identiques à ceux de Google ...).
Ils suggèrent de suivre ce lien pour les mises à jour de Crashlytics:
https://github.com/firebase/firebase-Android-sdk/issues/198
Remarque: j'utilise toujours Android Studio 3.3 avec io.fabric.tools:gradle:1.26.0 sans commenter aucun de Craslytics et cela fonctionne correctement sur mon application de débogage.
Dernières nouvelles du 24/01/2019
Infos ici https://issuetracker.google.com/issues/116408637
Nous aurons besoin d'attendre jusqu'à ce que Crashlytics propose une solution, voici le numéro de GitHub ouvert
https://github.com/firebase/firebase-Android-sdk/issues/198
Le seul moyen que j'utilise actuellement pour ne pas commenter le plug-in io.fabric est de rétrograder mon dégradé et de mettre à niveau mon classpath fabric (cela fonctionne sur mon application de production).
dependencies {
classpath 'com.Android.tools.build:gradle:3.2.1'
classpath 'com.google.gms:google-services:4.2.0'
classpath 'io.fabric.tools:gradle:1.27.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
Comme il a été dit, le problème vient de Fabric/Crashlytics.
apply plugin: 'io.fabric'
C’est un bogue du côté de Crashlytics/Firebase, veuillez vérifier le lien suivant et consulter le statut du bogue: https://github.com/firebase/firebase-Android-sdk/issues/198
Cela est dû à la mise à jour de votre Android Studio d'Android Studio 3.2.0 vers Android Studio 3.3.0. Mettez à jour vos dépendances (projet) d'IO.Fabric. Comme:
classpath 'io.fabric.tools:gradle:1.27.1'
et mettez également à jour votre version de Kotlin vers
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.20"
Cela résoudra ces problèmes. Merci
le suivi des problèmes peut faire référence à "configuration de tâches paresseuses" -
c'est au moins ce que tâche évite la configuration suggère.
mais on peut éventuellement empêcher l’accès à cette méthode obsolète de BaseVariantImpl
, lorsque variant.outputs.all
n’aura pas accès à cette méthode (en interne) - ou lorsque des contrôles pourront empêcher l’accès; ou lors de l'accès à la variante par son nom; ou en quelque sorte désactiver les tâches de génération natives externes pour la variante. voir aussi l'option single-variant project sync , qui semble plutôt liée.
ou attendez build-tools3.3.0-alpha12
ou 3.3.0-beta1
... ce n'est même pas un release candidate
; par conséquent, investir trop de temps peut être inutile - à part l'utiliser pour enregistrer un autre rapport de bogue.
le nouveau retour rapide Le bouton semble toujours le plus prometteur.
Le journal de construction indique comment déboguer cela, en particulier si vous avez besoin de construire avec -Pandroid.debug.obsoleteApi=true
, cela imprimera la trace de pile de l'appel de l'API obsolète et vous pourrez déterminer quel plugin/code l'appelle.
S'il finit par être votre code - utilise la nouvelle API de fournisseur ( lit la documentation de Lazy Task Configuration )
S'il provient d'un autre plugin - leur signaler avec un message de trace de pile et d'avertissement et éventuellement soumettre un correctif. Comme dans ce cas, il est lié à la question io.fabric
.
Pour moi, j'ai suivi les étapes suivantes: 1. Mettez à niveau la dépendance Gradle sur build.gradle au niveau du projet.
classpath 'io.fabric.tools:gradle:1.28.0'
ajoutez cette dépendance de plugin en dessous de apply plugin: 'com.Android.application' dans le build.gradle du niveau de l'application.
apply plugin: 'io.fabric'
Synchronisez le projet avec des fichiers Gradle.
Dans mon cas, je devais utiliserio.fabric
plugin, et la solution consistait à mettre à jour vers la dernière version de Gradle Tools Fabric:
classpath 'com.Android.tools.build:gradle:3.3.0'
classpath 'io.fabric.tools:gradle:1.27.0'
Le correctif consiste à mettre à jour les fichiers de niveau de génération racine au plus tard. Et cette réponse est vraie maintenant. Dans fureture à nouveau, de nouveaux changements seront mis en œuvre par gradle et Android SDK. Parfois, la réponse variera avec le temps.
repositories {
maven { url "https://jitpack.io" }
maven {
url 'https://maven.fabric.io/public'
}
google()
jcenter()
}
dependencies {
classpath 'com.Android.tools.build:gradle:3.5.0'
classpath 'com.google.gms:google-services:4.3.0'
classpath 'io.fabric.tools:gradle:1.30.0'
}
Pour ceux qui ont besoin de garder le plugin Fabric appliqué, la solution temporaire consiste à revenir à la version précédente du dégradé au niveau projet.
Changez la version du chemin de classe en com.Android.tools.build:gradle:3.2.1
.
Je ne pouvais pas non plus démarrer le projet après la mise à jour d'Android Studio. Mais après la suppression de .gradle, .idea, la création de dossiers et la réimportation du projet, tout a fonctionné, mais l'avertissement persiste.
Changer la compatibilité de la source dans le fichier du module build.gradle
vers Java 8 résout le problème
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
Assurez-vous de reconstruire le projet après avoir ajouté ces lignes
C'était un problème avec la dernière version gradle
(dans mon cas, 3.3.2
) et le plugin Fabric.io
. Il est maintenant résolu par la nouvelle version. Les utilisateurs devraient avoir ceci dans leur build.gradle
de niveau supérieur:
buildscript {
// ... repositories, etc. ...
dependencies {
// ...other dependencies ...
classpath 'io.fabric.tools:gradle:1.28.0'
}
}
cela va corriger l'erreur: Dans la barre des tâches, cliquez sur Outils-> Kotlin-> Configurer Kotlin dans le projet