Utilisation d'Android Studio 3.3 Canary 11 avec la version du plugin gradle 3.3.0-alpha11
. Il génère l'erreur suivante lors de la tentative de synchronisation de gradle
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
Cliquer sur l'erreur m'amène à cette ligne dans le fichier gradle
applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "${variant.name}-${variant.versionName}.apk"
}
}
Que dois-je changer exactement 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'
}
app 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 ignoré quelques constantes et autres informations sensibles dans le fichier app / build.gradle.
android
firebase
android-studio
android-gradle-plugin
fabric.io
Jude Fernandes
la source
la source
Réponses:
Le problème a été corrigé dans leur dernière version
'io.fabric.tools:gradle:1.30.0'
Veuillez mettre à jour vos deux outils Gradle Fabric avec la version 1.30.0
Pour plus de détails https://github.com/firebase/firebase-android-sdk/issues/198#issuecomment-473435453
la source
classpath 'io.fabric.tools:gradle:1.31.0'
etimplementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
. Il est cassé à nouveau ou pas réparé dans tous les cas.ÉDITER
Ce problème a été corrigé dans Fabric 1.28.0 . Dans votre
build.gradle
niveau de projet, ajoutez la ligne suivante:Réponse précédente
Cela se produit après la mise à jour d'Android Studio vers 3.3.0.
apply plugin: 'io.fabric'
est la cause. J'ai envoyé un rapport de bogue à l'équipe Firebase à propos de ce problème.Vous avez 3 options:
Attendez la sortie de la prochaine version du plug-in Fabric. Vérifiez la dernière version ici .
Rétrograder vers Android Studio 3.2.1 .
Commentez le
io.fabric
plugin.Dans
build.gradle
le module de votre application:Cependant, vous pouvez toujours générer et exécuter vos projets même si cette erreur apparaît. N'y faites pas attention.
la source
io.fabric
plugin alors comment puis-je supprimer cet avertissement sans changer cela?dans l'application build.gradle, rétrogradez vers cette version stable de gradle:
Cela se produit après avoir mis à jour Android Studio en 3.3, solution temporaire jusqu'à ce qu'ils le corrigent!
modifier: vous n'avez pas besoin de rétrograder votre studio Android!
la source
MISE À JOUR À partir d'aujourd'hui, vous pouvez utiliser
classpath 'io.fabric.tools:gradle:1.28.0'
pour résoudre ce problème!Si
Crashlytics
le plug-in de miseio.fabric
en commentaire du fichier Gradle de l'application a fonctionné temporairement pour vousEnsuite, la mise à niveau de vos dépendances de gradle de tissu sur le fichier Gradle du projet résoudra définitivement le problème:
NB: cela ne supprime pas les avertissements mais vous permet d'utiliser Crashlytics avec AS3.3 +
la source
crashlytics
activé. Donc, pour conserver Crashlytics et continuer à pousser, vous pouvez utiliser la mise à jour mentionnée ci-dessus même si elle déclenche toujours des "avertissements".Je ne sais pas quel est le problème réel, mais commentez les dépendances liées aux crashlytics du problème résolu par le projet.
la source
C'est confirmé comme bug pour Crashlytics et ils y travaillent.
https://issuetracker.google.com/issues/116408637
Cité par l'assigné de Google:
Pour moi, mon application de débogage fonctionne bien sur mon appareil simplement en exécutant et en ignorant l'avertissement sans commenter Crashlytics ou Fabric. Je n'ai pas essayé de production.
Mettre à jour:
Google Issue Tracker avait marqué ces problèmes comme ne pouvant pas être résolus (irréalisables), car tous les problèmes provenaient de Crashlytics, et ont laissé les correctifs effectués par l'équipe de Crashlytics (bien qu'ils soient les mêmes Googler ...).
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 Craslytics et cela fonctionne très bien sur mon application de débogage.
Mettre à jour:
Je peux maintenant confirmer que cela fonctionne bien sur mon application de version de production / version. Comment puis-je savoir que cela fonctionne? Parce qu'il m'a renvoyé un rapport de crash -_- '
Quoi qu'il en soit, ignorez simplement l'avertissement, ils devraient éventuellement le corriger.
Aww, il suffit de lire qu'il a été corrigé avec le tissu 1.28.0 :)
la source
Dernières actualités du 24/01/2019
Infos ici https://issuetracker.google.com/issues/116408637
Nous devrons attendre jusqu'à ce que Crashlytics ait trouvé une solution, voici le problème GitHub ouvert
https://github.com/firebase/firebase-android-sdk/issues/198
La seule façon que j'utilise en ce moment pour ne pas commenter plugin io.fabric est de rétrograder mon gradle et de mettre à niveau mon chemin de classe de tissu (cela fonctionne sur mon application de production)
la source
-dontwarn com.crashlytics.android.Crashlytics
àproguard-rules.pro
Comme il a été dit, le problème est avec Fabric / Crashlytics.
C'est un bug côté Crashlytics / Firebase, veuillez vérifier le lien suivant et voir l'état du bug: https://github.com/firebase/firebase-android-sdk/issues/198
la source
le problème-tracker pourrait se référer à "la configuration des tâches paresseuses" -
c'est du moins ce que l' évitement de la configuration des tâches suggère.
mais on peut éventuellement empêcher l'accès à cette méthode obsolète de
BaseVariantImpl
, quandvariant.outputs.all
ne pourra pas accéder à cette méthode (en interne) - ou lorsque les contrôles peuvent empêcher l'accès; ou lors de l'accès à la variante par son nom; ou désactiver d'une manière ou d'une autre les tâches de génération natives externes pour la variante. voir également l' option de synchronisation de projet à variante unique , qui semble plutôt liée.ou attendre des outils de compilation
3.3.0-alpha12
ou3.3.0-beta1
... ce n'est même pas unrelease candidate
, donc investir trop de temps peut être inutile - sauf à l'utiliser pour déposer un autre rapport de bogue.le nouveau bouton de rétroaction rapide semble toujours le plus prometteur.
la source
android.debug.obsoleteApi=true
pour voir d'où il vient. il y avait quelques méthodes renommées, avec enProvider
annexe à leur nom.3.3.0
version a cassé quelques choses, puisque la variante API avait changé. peut lier une discussion récente: stackoverflow.com/questions/54206898/… (y a ajouté un résumé comme réponse).Pour moi, j'ai suivi ces étapes: 1. mettez à niveau la dépendance Gradle au niveau du projet build.gradle.
ajoutez cette dépendance de plugin ci-dessous appliquez le plugin: 'com.android.application' dans le niveau d'application build.gradle.
Synchronisez le projet avec les fichiers Gradle.
la source
Cela se produit en raison de la mise à jour de votre Android Studio d'Android Studio 3.2.0 vers Android Studio 3.3.0. Mettez à jour vos dépendances Gradle (projet) de IO.Fabric. Comme:
et mettez également à jour votre version Kotlin vers
Cela résoudra ces problèmes. Merci
la source
Le journal de construction affiche comment déboguer cela, en particulier vous devez exécuter la construction avec
-Pandroid.debug.obsoleteApi=true
, qui imprimera la trace de la pile de l'appel à l'API obsolète et vous pourrez déterminer quel plugin / code l'appelle.S'il finit par être votre code - utilisez la nouvelle API du fournisseur ( lisez le document de configuration des tâches paresseuses )
Si cela vient d'un autre plugin - signalez-leur avec stack-trace et un message d'avertissement et peut-être soumettez un patch. Comme dans ce cas, c'est lié au
io.fabric
problème.la source
cela a été corrigé dans la dernière version du plugin Fabric gradle, 1.28.0, qui a été mise en ligne aujourd'hui. Ayez ceci dans votre build.gradle de niveau supérieur:
la source
Lorsque j'ai ouvert le projet, j'ai appuyé sur le
Run migrations
bouton apparaissant dans le coin inférieur droit deAndroid Studio
. Une migration a été effectuée et le problème a été résolu sans commenter laCrashlytics
dépendance.la source
Changer la compatibilité des sources dans le
build.gradle
fichier de module en Java 8 résout le problèmeAssurez-vous de reconstruire le projet après avoir ajouté ces lignes
la source
build.gradle
ou au niveau du module (/ app)?cela corrigera l'erreur: dans la barre des tâches, cliquez sur Outils-> Kotlin-> Configurer Kotlin dans le projet
la source
Dans mon cas, je devais utiliser
io.fabric
plugin, et la solution était de mettre à jour la dernière version de Gradle Fabric Tools:la source
Pour ceux qui ont besoin de garder le plugin Fabric appliqué, la solution temporaire est de revenir à la version précédente du gradle au niveau du projet.
Modifiez la version du chemin de classe en
com.android.tools.build:gradle:3.2.1
.la source
C'était un problème avec la dernière version
gradle
(dans mon cas3.3.2
) et leFabric.io
plugin. Il est maintenant résolu par la nouvelle version Les utilisateurs devraient avoir ceci dans leur niveau supérieurbuild.gradle
:la source
Le correctif consiste à mettre à jour les fichiers gradle de génération racine vers les plus récents. Et cette réponse est vraie maintenant. dans fureture nouveau changement sera mis en œuvre par gradle et SDK Android. Parfois, la réponse variera en temps voulu.
la source
tout d'abord ce n'est pas une erreur
c'est un avertissement
et son affichage lorsque la mise à jour gradle vers 3.3.0 se produit souvent parce que io.fabric alors attendez que la version actuelle du tissu de mise à jour où l'avertissement s'affiche toujours soit 'io.fabric.tools:gradle:1.27.1'
la source