Falha ao resolver a variável '$ {animal.sniffer.version}' ao migrar para o AndroidX


137

Estou usando o Android Studio 3.2 Beta5 para migrar meu projeto para o AndroidX . Quando reconstruo meu aplicativo, recebi os seguintes erros:

ERRO: [TAG] Falha ao resolver a variável '$ {animal.sniffer.version}'

ERRO: [TAG] Falha ao resolver a variável '$ {junit.version}'

A limpeza e reconstrução completa não funcionaram! Alguém sabe como consertar isso?


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'

Algum progresso aqui?
Chad Bingham

@ChadBingham Não, ainda ser o mesmo erro
nhoxbypass

Finalmente encontrei a solução, encontre a resposta aqui: stackoverflow.com/a/52308912/10224384
Nabster


5
@Nabster hey hey minha pergunta foi publicada há um mês, enquanto esta foi publicada há 20 horas!
Nhoxbypass 13/0918

Respostas:


108

Corrijo isso com duas etapas

1) Arquivo -> invalidar caches / reiniciar ... insira a descrição da imagem aqui

2) Compilar -> Projeto limpo insira a descrição da imagem aqui


4
De alguma forma, trabalhou para algumas reconstruções mas Im recebendo mesmo erro novamente agora ..
Al Cabone

2
para mim Limpa Projeto ter sido apenas o suficiente
f4bo

1
Também o Clean Project era tudo o que era necessário para mim. Obrigado @ f4bo pela dica.
John Bentley

1
Funciona. Eu limpo apenas o projeto. Esta resposta deve ser definida como resposta aceita. @nhoxbypass
azwar_akbar

30

Eu recebi o mesmo erro depois de atualizar meu arquivo build.gradle com dependências do AndroidX Test . Acontece que eu esqueci de remover a antiga dependência junit. Então, para mim, a correção foi simplesmente remover a seguinte dependência:

dependencies {
    ...
    testImplementation 'junit:junit:4.12'
}

Este foi o problema para mim.
Brill Pappin

Sim consertou. Corri para o problema com o Udacity Kotlin curso acho que jogo
Aswin Mohan

Você poderia explicar por que esse é o caso?
Riz-waan 9/10/19

17

Adicionando suporte ao Java 8 ao problema corrigido do arquivo build.gradle para mim

android {
     ...

     //Add the following configuration in order to target Java 8.
     compileOptions {
         sourceCompatibility JavaVersion.VERSION_1_8
         targetCompatibility JavaVersion.VERSION_1_8
     }
}

leanback não encontrado. im criando um aplicativo TV e fica vermelho em qualquer coisa a respeito de Leanback v17 suporte
ralphgabb

1
caches invalidar e reiniciar estúdio android
Dhaval Patel

3
não, não, achei que você precisava usar o pacote androidx.
ralphgabb 10/01/19

Eu acho que a adição de Java 8 forças de apoio Estúdio Android para invalidá-la de caches e, assim, obtém o mesmo resultado como um efeito colateral ... Hmmmm, tudo bem ...
varun

14

Parece ser o problema da Glide .

Eu tive o mesmo erro e atualizei as dependências do Glide para 4.8 e não há erros de compilação.

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"

Certifique-se de ter ativado em seu gradle.properties:

android.useAndroidX=true
android.enableJetifier=true

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

Espero que isso ajude você!


9
Este erro também aparece para mim sem ter Glide como uma dependência
Fabian Streitel


4

A remoção do testInstrumentationRunner funcionou para mim:

defaultConfig {
...
...
//        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

solução fantástica! Fixa-lo para mim
beastlyCoder

4

Se você estiver usando Kotlin, o problema será exibido se não usar a kaptversão para qualquer processador de anotação usado no projeto.
Como o @Vince mencionou o caso Glide, isso pode acontecer com Dagger2, Butterknifeetc.
Se você estiver usando os dois Javae Kotlinprecisará manter as duas dependências, a seguir, (a seguir $glideVersioné uma versão predefinida Glide):

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

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

Se você estiver em um Kotlinúnico projeto, a kaptdependência deve funcionar sozinha.

EDIT
Outra coisa que você deve ter em mente é se você já estiver usando Androidx. Androidxé um ótimo refatorador, mas durante a migração pode causar o colapso de algumas de suas dependências. As bibliotecas convencionais já estão atualizadas para Androidx, no entanto, algumas delas não são e nem serão.
Se o problema não desaparecer com minha solução fornecida acima desta edição, você pode examinar suas dependências e garantir que elas Androidxtambém sejam usadas .

EDIT 2
Como o @Ted mencionou, pesquisei de volta e ele tem razão kapttambém lida com javaarquivos. kaptsozinho fará o truque, não há necessidade de manter os dois kapte as annotationProcessordependências.


1
O kapt também pode lidar com arquivos java, portanto, não é necessário usá-los, apenas o kapt está OK.
Ted

3

Tente remover esta linha:

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

na seção buildscript / repositories do seu arquivo build.gradle.

Quando adicionei essa linha, recebi o erro que você descreveu. Quando eu removi, não mais. Essa linha deve estar apenas na seção allprojects / repositories.


1
Acredito que Jake Wharton já adicionou suporte ao AndroidX no instantâneo 9.0.0. Veja: github.com/JakeWharton/butterknife/issues/1280
nhoxbypass

2

Tente definir android.enableJetifier = false em gradle.properties. Invalidar caches / reiniciar ... no Android Studio


8
Não é recomendado, pois pode haver bibliotecas de terceiros que ainda não foram atualizadas para o AndroidX! Como a documentação diz: "android.enableJetifier: quando definido como true, o plugin do Android migra automaticamente as bibliotecas de terceiros existentes para usar o AndroidX reescrevendo seus binários. O sinalizador é falso por padrão, se não for especificado." desenvolvedor.android.com/jetpack/androidx
Gábor Horváth

1

A correção está na 4.2.0, use a versão superior do google gms jar.

Tente alterar:

caminho de classe 'com.google.gms: google-services: 4.0.1'

por esta versão:

caminho de classe 'com.google.gms: google-services: 4.2.0'

Espero que isso funcione ...


1
Isso funcionou para mim, juntamente com a atualização de dependências.
glisu

1

Se você estiver usando punhal ou faca de manteiga, atualize-o para a versão mais recente. Ou, se você tiver outra biblioteca de injeção usada em seu projeto, tente verificar se é compatível com androidx ou não.

Eu encontrei o mesmo erro, o problema está no meu punhal e faca de manteiga. Corrija-o atualizando-o para a versão mais recente.


1

Versão do Android: 4.10.2

Resolvi esse problema com três etapas simples: Primeiro, adicionei abaixo isso no pubspec.yml: (com dois espaços de identificação)

module:
  androidX: true 

Adicionando essas duas linhas abaixo em gradle.properties, tenho isso em android / gradle.properties, na pasta do projeto.

android.useAndroidX=true
android.enableJetifier=true

E depois disso eu escrevi com o terminal:

flutter clean

Talvez você precise parar o dispositivo e executar novamente.


0

Corrigi isso atualizando as dependências do firebase para as mais recentes.


-1

Corrigi-o atualizando o cahche (em vez de invalidá-lo - o que também limpa o histórico local):

  1. no arquivo gradle.properties, comente a linha org.gradle.caching = true.
  2. Limpe, reconstrua.
  3. no arquivo gradle.properties, descomente a linha org.gradle.caching = true.
  4. Limpe, reconstrua.

É isso aí!


-1

Vá para o arquivo e clique em Invalidar caches e reinicie.

Após a reinicialização, você aumenta a versão mínima do SDK no build.gradlearquivo do seu aplicativo .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.