android firebase gradle android-studio android-gradle android-studio-3.3 fabric.io

android - La API ''variant.getExternalNativeBuildTasks()'' está obsoleta y se ha reemplazado por ''variant.getExternalNativeBuildProviders()



firebase gradle (20)

Últimas noticias del 24/01/2019

Información aquí issuetracker.google.com/issues/116408637

Tendremos que esperar hasta que Crashlytics encuentre una solución, aquí está el problema de GitHub abierto

https://github.com/firebase/firebase-android-sdk/issues/198

La única forma en que estoy usando ahora mismo para no comentar el complemento io.fabric es degradar mi gradle y actualizar mi ruta de clase de la tela (esto está funcionando en mi aplicación de producción)

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 }

Usando Android Studio 3.3 Canary 11 con el plugin gradle versión 3.3.0-alpha11 . Se produce el siguiente error al intentar sincronizar 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

Al hacer clic en el error me lleva a esta línea en el archivo de gradle

applicationVariants.all { variant -> variant.outputs.all { outputFileName = "${variant.name}-${variant.versionName}.apk" } }

¿Qué es exactamente lo que necesito cambiar aquí?

proyecto 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'' }

aplicación 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''

He omitido algunas constantes y otra información confidencial en el archivo app / build.gradle.


Cambiar la compatibilidad de origen en el archivo build.gradle módulo a Java 8 soluciona el problema

compileOptions { sourceCompatibility 1.8 targetCompatibility 1.8 }

Asegúrese de reconstruir el proyecto después de agregar esas líneas



Cuando abrí el proyecto, presioné el botón Run migrations aparecía en la esquina inferior derecha de Android Studio . Se realizó una migración y el problema se resolvió sin comentar la dependencia de Crashlytics .



El registro de compilación imprime cómo depurar esto, en particular, debe ejecutar la compilación con -Pandroid.debug.obsoleteApi=true , que imprimirá el seguimiento de la pila de la llamada a la API en desuso y podrá averiguar qué plugin / código lo llama .

Si termina siendo su código , use la nueva API del proveedor ( lea el documento de configuración de Lazy Task )

Si proviene de otro complemento , infórmeselo con un seguimiento de la pila y un mensaje de advertencia y quizás envíe un parche. Como en este caso está relacionado con el tema io.fabric .


En mi caso, necesitaba usar el complemento io.fabric , y la solución fue actualizar a la última versión de herramientas de tejido de Gradle:

classpath ''com.android.tools.build:gradle:3.3.0'' classpath ''io.fabric.tools:gradle:1.27.0''


En primer lugar esto no es un error.

es una advertencia

y se muestra cuando la actualización gradle a 3.3.0 Ocurre a menudo porque io.fabric, así que espere hasta que la actualización de la versión actual de la estructura donde todavía aparece la advertencia sea ''io.fabric.tools:gradle:1.27.1''


Está confirmado como error para Crashlytics y están trabajando en ello.

issuetracker.google.com/issues/116408637

Citado por el cesionario de Google:

je ... @ google.com # 23 ene 23, 2019 01:40 a.m.
Hola a todos,

Gracias por su paciencia.

Parece que el error en todos los casos proviene de crashlytics y he presentado un error con ellos.

Te mantendré informado sobre el estado.

Para mí, mi aplicación de depuración funciona bien en mi dispositivo simplemente ejecutando e ignorando la advertencia sin comentar Crashlytics o Fabric. No lo he intentado para producción.

Actualizar:

Google Issue Tracker marcó estos problemas como No se solucionará (Inactivo) porque todos los problemas fueron de Crashlytics, y dejó que el equipo de Crashlytics corrigiera (a pesar de que son el mismo Googler ...).

Sugieren seguir este enlace para actualizaciones de Crashlytics:

https://github.com/firebase/firebase-android-sdk/issues/198

Nota: todavía estoy usando Android Studio 3.3 con io.fabric.tools:gradle:1.26.0 sin comentar nada de Craslytics y funciona bien en mi aplicación de depuración.

Actualizar:

Ahora puedo confirmar que funciona bien en mi aplicación de versión de producción / lanzamiento. ¿Cómo sé que funciona? Porque me había enviado un informe de colisión ...

De todos modos, solo ignora la advertencia, deberían arreglarlo eventualmente.

Aww, acabo de leer que había arreglado con tela 1.28.0 :)


Esto se ha corregido en la última versión del plugin Fabric gradle, 1.28.0, que se lanzó hoy. Tenga esto en su nivel superior build.gradle:

buildscript { // ... repositories, etc. ... dependencies { // ...other dependencies ... **classpath ''io.fabric.tools:gradle:1.28.0''** }


Esto sucede debido a la actualización de su Android Studio de Android Studio 3.2.0 a Android Studio 3.3.0. Actualice sus dependencias de Gradle (proyecto) de IO.Fabric. Me gusta:

classpath ''io.fabric.tools:gradle:1.27.1''

y también actualizar su versión de Kotlin para

classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.20"

Esto resolverá estos problemas. Gracias


Fue un problema con la última gradle (en mi caso 3.3.2 ) y el complemento Fabric.io . Ahora se resuelve con la nueva versión. Los usuarios deberían tener esto en su nivel superior de build.gradle :

buildscript { // ... repositories, etc. ... dependencies { // ...other dependencies ... classpath ''io.fabric.tools:gradle:1.28.0'' } }


No estoy seguro de cuál es el problema real, pero comentar las dependencias relacionadas con crashlytics del problema resuelto del proyecto.


Para aquellos que necesitan mantener el complemento de Fabric aplicado, la solución temporal es volver a la versión anterior de Gradle en el nivel del proyecto.

Cambie la versión de classpath a com.android.tools.build:gradle:3.2.1 .


Para mí, seguí estos pasos: 1. actualizar la dependencia de Gradle en el nivel de proyecto build.gradle.

classpath ''io.fabric.tools:gradle:1.28.0''

  1. agregue esta dependencia de complemento a continuación aplique el complemento: ''com.android.application'' en el nivel de aplicación build.gradle.

    apply plugin: ''io.fabric''

  2. Sincroniza el proyecto con archivos gradle.


el rastreador de problemas puede referirse a "configuración de tareas perezosas" -

eso es al menos lo que sugiere evitar la configuración de tareas .

pero posiblemente se pueda impedir el acceso a este método obsoleto de BaseVariantImpl , cuando variant.outputs.all no accederá a ese método (internamente), o cuando las comprobaciones puedan impedir el acceso; o al acceder a la variante por su nombre; o de alguna manera deshabilite las tareas de compilación nativas externas para la variante. También vea la opción de sincronización de proyecto de una sola variante , que parece estar relacionada.

o espere build-tools de build-tools 3.3.0-alpha12 o 3.3.0-beta1 ... esto ni siquiera es una release candidate , por lo que invertir mucho tiempo puede ser inútil, excepto usarlo para presentar otro informe de errores.

la nueva respuesta rápida El botón sigue pareciendo el más prometedor.


en la aplicación build.gradle, cambie a esta versión estable de gradle:

classpath ''com.android.tools.build:gradle:3.2.1''

Sucede después de que actualicé Android Studio a 3.3, solución temporal hasta que lo solucionaron.

edición: no es necesario degradar su estudio de Android!


esto solucionará el error: En la barra de tareas, haga clic en Herramientas-> Kotlin-> Configurar Kotlin en Proyecto


ACTUALIZACIÓN A partir de hoy, puede usar classpath ''io.fabric.tools:gradle:1.28.0'' para solucionar este problema.

Si comenta el complemento io.fabric de io.fabric en la aplicación, el archivo gradle funcionó temporalmente

//apply plugin: ''io.fabric''

Luego, la actualización de las dependencias de su estructura en el archivo de proyecto se resolverá de forma permanente:

classpath ''io.fabric.tools:gradle:1.27.0''

NB: esto no elimina las advertencias, pero le permite utilizar Crashlytics con AS3.3 +


EDITAR

Este problema se ha solucionado en docs.fabric.io/android/changelog.html#march-15-2019 . En su build.gradle del nivel de proyecto, agregue la siguiente línea:

classpath ''io.fabric.tools:gradle:1.28.1''

Respuesta anterior

Sucede después de que actualicé Android Studio a 3.3.0. apply plugin: ''io.fabric'' es la causa. He enviado un informe de error al equipo de Firebase sobre este problema.

Tienes 3 opciones:

En build.gradle del build.gradle de su aplicación:

apply plugin: ''com.android.application'' // apply plugin: ''io.fabric'' <== this plugin causes the error

Sin embargo, aún puede crear y ejecutar sus proyectos a pesar de que aparezca este error. Simplemente ignóralo.