Usando Android Studio 3.3 Canary 11 con la versión del complemento gradle 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
Hacer clic en el error me lleva a esta línea en el archivo gradle
applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "${variant.name}-${variant.versionName}.apk"
}
}
¿Qué necesito cambiar exactamente 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'
}
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'
He omitido algunas constantes y otra información confidencial en el archivo app / build.gradle.
android
firebase
android-studio
android-gradle-plugin
fabric.io
Jude Fernandes
fuente
fuente
Respuestas:
El problema se ha solucionado en su última versión
'io.fabric.tools:gradle:1.30.0'
Actualice sus dos herramientas de tela de gradle con 1.30.0
Para más detalles https://github.com/firebase/firebase-android-sdk/issues/198#issuecomment-473435453
fuente
classpath 'io.fabric.tools:gradle:1.31.0'
yimplementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
. Está roto de nuevo o no está arreglado para todos los casos.EDITAR
Este problema se ha solucionado en Fabric 1.28.0 . En su
build.gradle
nivel de proyecto, agregue la siguiente línea:Respuesta anterior
Sucede después de actualizar Android Studio a 3.3.0.
apply plugin: 'io.fabric'
es la causa Envié un informe de error al equipo de Firebase sobre este problema.Tienes 3 opciones:
Espere hasta que se lance la próxima versión del complemento Fabric. Consulta la última versión aquí .
Degradar a Android Studio 3.2.1 .
Comenta el
io.fabric
complemento.En
build.gradle
el módulo de su aplicación:Sin embargo, aún puede compilar y ejecutar sus proyectos aunque aparezca este error. Simplemente ignóralo.
fuente
io.fabric
complemento, ¿cómo puedo eliminar esta advertencia sin cambiar esto?en la aplicación build.gradle, degrada a esta versión estable de gradle:
¡Sucede después de actualizar Android Studio a 3.3, solución temporal hasta que lo arreglen!
editar: ¡no necesitas degradar tu estudio de Android!
fuente
ACTUALIZAR A partir de hoy puede utilizar
classpath 'io.fabric.tools:gradle:1.28.0'
para solucionar este problema!Si comentar
Crashlytics
el complementoio.fabric
de la aplicación gradle funciona temporalmenteLuego, actualizar sus dependencias de gradle de tela en el archivo de gradle de Project resolverá permanentemente el problema:
NB: esto no elimina las advertencias, pero le permite usar Crashlytics con AS3.3 +
fuente
crashlytics
habilitado. Por lo tanto, para mantener Crashlytics y seguir presionando para presionar, puede usar la actualización mencionada anteriormente a pesar de que aún desencadena "advertencias".No estoy seguro de cuál es el problema real, pero comentando las dependencias relacionadas con crashlytics del problema resuelto del proyecto.
fuente
Está confirmado como error para Crashlytics y están trabajando en ello.
https://issuetracker.google.com/issues/116408637
Citado del cesionario de Google:
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 he intentado para la producción.
Actualizar:
El Rastreador de problemas de Google marcó estos problemas como No soluciona (inviable) porque todos los problemas eran de Crashlytics, y permitió que los arreglos los hiciera el equipo de Crashlytics (a pesar de que son el mismo Googler ...).
Sugieren seguir este enlace para las 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 ninguno 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 fallos -_- '
De todos modos, simplemente ignore la advertencia, deberían solucionarlo eventualmente.
Aww, acabo de leer que se había arreglado con la tela 1.28.0 :)
fuente
Últimas noticias del 24/01/2019
Información aquí https://issuetracker.google.com/issues/116408637
Tendremos que esperar hasta que Crashlytics haya encontrado una solución, aquí está abierto el problema de GitHub
https://github.com/firebase/firebase-android-sdk/issues/198
La única forma que estoy usando ahora para no comentar el complemento io.fabric es degradar mi gradle y actualizar mi classpath de fabric (esto está funcionando en mi aplicación de producción)
fuente
-dontwarn com.crashlytics.android.Crashlytics
enproguard-rules.pro
Como se dijo, el problema es con Fabric / Crashlytics.
Es un error en Crashlytics / Firebase, verifique el siguiente enlace y vea el estado del error: https://github.com/firebase/firebase-android-sdk/issues/198
fuente
el rastreador de problemas puede referirse a "configuración de tarea diferida" -
eso es al menos lo que sugiere evitar la configuración de la tarea .
pero uno posiblemente puede evitar el acceso a este método obsoleto de
BaseVariantImpl
, cuandovariant.outputs.all
no accederá a ese método (internamente), o cuando las comprobaciones pueden 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 esperar a las herramientas de construcción
3.3.0-alpha12
o3.3.0-beta1
... esto ni siquiera es unrelease candidate
, por lo tanto, invertir mucho tiempo podría no tener sentido, excepto usarlo para presentar otro informe de error.El nuevo botón de retroalimentación rápida sigue siendo el más prometedor.
fuente
android.debug.obsoleteApi=true
para ver de dónde viene. hubo algunos métodos renombrados, juntoProvider
con su nombre.3.3.0
lanzamiento rompió algunas cosas, ya que la API variante había cambiado. puede vincular una discusión reciente: stackoverflow.com/questions/54206898/… (se agregó un resumen como respuesta allí).Para mí, seguí estos pasos: 1. Actualice la dependencia de Gradle en el nivel de proyecto build.gradle.
agregue esta dependencia de complemento a continuación, aplique el complemento: 'com.android.application' en el nivel de aplicación build.gradle.
Sincronice el proyecto con archivos gradle.
fuente
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:
y también actualice su versión de Kotlin a
Esto resolverá estos problemas. Gracias
fuente
El registro de compilación imprime cómo depurar esto, especialmente si necesita ejecutar compilar con
-Pandroid.debug.obsoleteApi=true
, que imprimirá el seguimiento de la pila de llamadas a la API en desuso y podrá averiguar qué plugin / código lo llama.Si termina siendo su código , use la nueva API de proveedor ( lea el documento Lazy Task Configuration Configuration )
Si proviene de otro complemento , infórmeles con seguimiento de pila y mensaje de advertencia y tal vez envíe un parche. Como en este caso, está relacionado con el
io.fabric
tema.fuente
Esto se ha solucionado en la última versión del complemento Gradle de Fabric, 1.28.0, que se lanzó hoy. Tenga esto en su build.gradle de nivel superior:
fuente
Cuando abrí el proyecto, presioné el
Run migrations
botón que apareció en la esquina inferior derechaAndroid Studio
. Se realizó una migración y el problema se resolvió sin comentar laCrashlytics
dependencia.fuente
Cambiar la compatibilidad de origen en el
build.gradle
archivo del módulo a Java 8 soluciona el problemaAsegúrese de reconstruir el proyecto después de agregar esas líneas
fuente
build.gradle
o nivel de módulo (/ aplicación)?esto solucionará el error: en la barra de tareas, haga clic en Herramientas-> Kotlin-> Configurar Kotlin en Proyecto
fuente
En mi caso, necesitaba usar el
io.fabric
complemento, y la solución fue actualizarme a la última versión de gradle de las herramientas de tela:fuente
Para aquellos que necesitan mantener el plugin Fabric aplicado, la solución temporal es volver a la versión anterior del gradle a nivel de proyecto.
Cambia la versión de classpath a
com.android.tools.build:gradle:3.2.1
.fuente
Fue un problema con la última versión
gradle
(en mi caso3.3.2
) y elFabric.io
complemento. Ahora está resuelto por la nueva versión Los usuarios deberían tener esto en su nivel superiorbuild.gradle
:fuente
La solución es actualizar los archivos gradle de compilación raíz a lo último. Y esta respuesta es cierta ahora. En fureture nuevamente se implementará un nuevo cambio por Gradle y Android SDK. A veces la respuesta variará a su debido tiempo.
fuente
en primer lugar esto no es un error
es advertencia
y se muestra cuando la actualización gradle a 3.3.0 A menudo ocurre porque io.fabric, por lo tanto, espere hasta que la versión actual de fabric de actualización donde todavía se muestra la advertencia sea 'io.fabric.tools:gradle:1.27.1'
fuente