Error al resolver la variable '$ {animal.sniffer.version}' al migrar a AndroidX

138

Estoy usando Android Studio 3.2 Beta5 para migrar mi proyecto a AndroidX . Cuando reconstruyo mi aplicación, recibí estos errores:

ERROR: [TAG] Error al resolver la variable '$ {animal.sniffer.version}'

ERROR: [TAG] Error al resolver la variable '$ {junit.version}'

¡La limpieza y reconstrucción completas no funcionaron! Alguien sabe cómo solucionar esto?


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'
nhoxbypass
fuente
¿Algún progreso aquí?
Chad Bingham
@ChadBingham No, sigue siendo el mismo error
nhoxbypass
Finalmente encontré la solución, encuentra la respuesta aquí: stackoverflow.com/a/52308912/10224384
Nabster
Posible duplicado de stackoverflow.com/questions/52294319/…
Nabster
55
@Nabster hey hey, mi pregunta se publicó hace un mes, mientras que esta pregunta se publicó hace 20 horas.
nhoxbypass

Respuestas:

108

Arreglo esto con dos pasos

1) Archivo -> Invalidar cachés / reiniciar ... ingrese la descripción de la imagen aquí

2) Construir -> Proyecto limpio ingrese la descripción de la imagen aquí

Beto
fuente
44
De alguna manera funcionó para un par de reconstrucciones, pero ahora
obtengo el
2
para mí Clean Project ha sido suficiente
f4bo
1
También Clean Project fue todo lo que se requirió para mí. Gracias @ f4bo por el consejo.
John Bentley
1
Funciona. Solo limpio proyecto. Esta respuesta debe establecerse como respuesta aceptada. @nhoxbypass
azwar_akbar
30

Recibí el mismo error después de actualizar mi archivo build.gradle con las dependencias de prueba de AndroidX . Resulta que olvidé eliminar la antigua dependencia de junit. Entonces, para mí, la solución fue simplemente eliminar la siguiente dependencia:

dependencies {
    ...
    testImplementation 'junit:junit:4.12'
}
Un droide
fuente
Este fue el problema para mí.
Brill Pappin
Sí lo arregló. Me encontré con el problema con el juego de adivinanzas Udacity Kotlin
Aswin Mohan
¿Podría explicar por qué este es el caso?
Riz-waan
17

Agregar soporte de Java 8 al archivo build.gradle solucionó el problema para mí

android {
     ...

     //Add the following configuration in order to target Java 8.
     compileOptions {
         sourceCompatibility JavaVersion.VERSION_1_8
         targetCompatibility JavaVersion.VERSION_1_8
     }
}
Dhaval Patel
fuente
Leanback no encontrado. Estoy construyendo una aplicación de TV y se vuelve rojo en todo lo relacionado con el respaldo leanback v17
ralphgabb
1
invalidar cachés y reiniciar Android Studio
Dhaval Patel
3
no, no, pensé que tenías que usar el paquete androidx.
ralphgabb
Supongo que agregar compatibilidad con Java 8 obliga a Android Studio a invalidar sus cachés y, por lo tanto, logra el mismo resultado que un efecto secundario ... Hmmmm, está bien ...
varun
14

Parece ser Glide el problema.

Tuve el mismo error y acabo de actualizar las dependencias de Glide a 4.8 y no hay errores de compilación.

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"

Asegúrese de haber habilitado en su gradle.properties:

android.useAndroidX=true
android.enableJetifier=true

Fuente: https://github.com/bumptech/glide/issues/3124

¡Espero que esto te ayudará!

Vince
fuente
9
Este error también me aparece sin tener Glide como una dependencia
Fabian Streitel
6

Lo solucionó yendo al directorio principal y escribiendo flutter clean

carne de res
fuente
1
Genial, ¿y si no estás usando flutter;)
Kevin Galligan
2
@KevinGalligan Luego use Flutter;)
Sobrino de Stackoverflow
4

Eliminar el testInstrumentationRunner funcionó para mí:

defaultConfig {
...
...
//        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
M. Usman Khan
fuente
solución fantástica! Lo
arreglé
4

Si está usando Kotlin, el problema aparecerá si no usa la kaptversión para cualquier procesador de anotaciones que use en el proyecto.
Como @Vince mencionó el caso Glide, esto podría suceder con Dagger2, Butterknifeetc.
Si está utilizando ambos Javay Kotlinnecesitará mantener ambas dependencias, de la siguiente manera (donde $glideVersiones una versión predefinida de Glide):

implementation "com.github.bumptech.glide:glide:$glideVersion"

kapt "com.github.bumptech.glide:compiler:$glideVersion"

Si está en un Kotlinúnico proyecto, la kaptdependencia debería funcionar sola.

EDITAR
Otra cosa que debes tener en cuenta es si ya lo estás usando Androidx. Androidxes un gran refactorizador, pero al migrar puede hacer que algunas de sus dependencias colapsen. Las bibliotecas principales ya están actualizadas Androidx, sin embargo, algunas de ellas no lo están e incluso no lo estarán.
Si el problema no desaparece con mi solución proporcionada arriba de esta edición, puede echar un vistazo a sus dependencias y asegurarse de que Androidxtambién se usen .

EDITAR 2
Como mencionó @Ted, investigué nuevamente y tiene razón kapt, también maneja javaarchivos. kaptsolo hará el truco, no es necesario mantener ambos kapty annotationProcessordependencias.

pamobo0609
fuente
1
kapt también puede manejar archivos java, por lo que no es necesario usarlos, solo kapt está bien.
Ted
3

Intenta eliminar esta línea:

maven { url "https://oss.sonatype.org/content/repositories/snapshots" }

de la sección buildscript / repositorios de su archivo build.gradle.

Cuando agregué esa línea, recibí el error que describiste. Cuando lo quité, ya no. Esa línea solo debe estar en la sección de todos los proyectos / repositorios.

Raj
fuente
1
Creo que Jake Wharton ya agregó soporte para AndroidX en la instantánea 9.0.0. Ver: github.com/JakeWharton/butterknife/issues/1280
nhoxbypass
2

Intente configurar android.enableJetifier = false en gradle.properties. Luego invalidar cachés / reiniciar ... en Android Studio

Minh Pham
fuente
8
¡No se recomienda ya que podría haber bibliotecas de terceros que aún no se hayan actualizado a AndroidX! Como dice la documentación: "android.enableJetifier: cuando se establece en verdadero, el complemento de Android migra automáticamente las bibliotecas de terceros existentes para usar AndroidX reescribiendo sus archivos binarios. El indicador es falso de forma predeterminada si no se especifica". developer.android.com/jetpack/androidx
Gábor Horváth
1

La solución está en 4.2.0, use la versión superior de google gms jar.

Intenta cambiar:

classpath 'com.google.gms: google-services: 4.0.1'

por esta versión:

classpath 'com.google.gms: google-services: 4.2.0'

Espero que esto funcione...

Dimitri de Jesus
fuente
1
Esto funcionó para mí junto con la actualización de dependencias.
glisu
1

Si está utilizando daga o navaja, asegúrese de actualizarlo a la última versión. O, si tiene otra biblioteca de inyección utilizada en su proyecto, puede intentar verificar si es compatible con androidx o no.

He encontrado el mismo error, el problema está en mi daga y navaja. Lo arreglé actualizándolo a la versión más reciente.

ikhsanudinhakim
fuente
1

Versión de Android: 4.10.2

Resolví este problema con tres pasos simples: Primero agregué debajo de esto en pubspec.yml: (con dos espacios de ideación)

module:
  androidX: true 

Agregando estas dos líneas a continuación en gradle.properties, tengo esto en android / gradle.properties, en la carpeta del proyecto.

android.useAndroidX=true
android.enableJetifier=true

Y después de esto escribí con el terminal:

flutter clean

Quizás deba detener el dispositivo y volver a ejecutarlo.

Pedro Molina
fuente
0

Solucioné esto actualizando las dependencias de Firebase a la última.

Gab Ledesma
fuente
-1

Lo arreglé actualizando el caché (en lugar de invalidarlo, lo que también borra el historial local):

  1. en el archivo gradle.properties, comente la línea org.gradle.caching = true.
  2. Limpiar, reconstruir.
  3. en el archivo gradle.properties, descomente la línea org.gradle.caching = true.
  4. Limpiar, reconstruir.

¡Eso es!

Hanoch Moreno
fuente
-1

Vaya al archivo y haga clic en Invalidar cachés y reinicie.

Después de que se reinicia, aumenta la versión mínima del SDK en el build.gradlearchivo de su aplicación .

Dan
fuente