Ainda recebendo aviso: a configuração 'compilar' está obsoleta e foi substituída por 'implementação'

332

Substituí todas as ocorrências de compileby implementationno meu projeto build.gradle, mas ainda estou recebendo este aviso:

insira a descrição da imagem aqui

Tentei procurar "compilar" em todo o projeto, mas nenhuma correspondência foi encontrada. Então, qual poderia ser a causa?

Roubar
fonte
Você está usando uma biblioteca local que está usando 'compilar' ainda?
Devsil
@ Devsil possivelmente ... mas como posso descobrir qual? Eu tentei uma pesquisa no Caminho em todo o projeto, mas não conseguiu encontrar qualquer ocorrência de compile..
Rob
2
Se você estiver usando uma biblioteca local, verá o arquivo gradle.build localizado no visualizador de projetos, no lado direito da janela do Android Studio. Nesse arquivo build.gradle, ele pode conter uma "compilação" em oposição à implementação. Se algum arquivo build.gradle que você vê lá não contiver isso. Pode ser uma biblioteca que você está usando que não é local e, portanto, não fornece acesso para alterar isso. Portanto, esse aviso pode ser ignorado por enquanto.
21418 Devsil
1
Gradle deve fornecer o número da linha em que o problema está ocorrendo.
Yetti99 31/03
experimentá-lo: stackoverflow.com/questions/48623244/... e para Failed to resolve: android.arch.persistence.room:runtime:1.1.1 Open File Show in Project Structure dialogtentar versão mudança1.0.0
Saeid

Respostas:

496

Atualizei com.google.gms:google-servicesde 3.1.1para 3.2.0e o aviso parou de aparecer.

buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files

    classpath 'com.google.gms:google-services:3.2.0'
    }
}
Jkrevis
fonte
1
A configuração 'compilar' é obsoleta e foi substituída por 'implementação'. Ele será removido no final de 2018. Para ficar claro, não estou usando nenhuma dependência de serviço do Google {classpath 'com.android.tools.build:gradle:3.1.0'}
Amit_android 04/04/19
Recebo "Não foi possível encontrar com.google.gms: google-services: 3.2.0." quando eu tento isso. Atualização: alterá-lo manualmente acionou o aviso de fiapo quando o mudei novamente para 3.1.1 e, em seguida, Alt + Enter para aplicar a correção alterada automaticamente para com.google.gms: google-services: 3.2.0 sem erros na sincronização. Não tenho certeza de qual era a diferença, mas é frustrante.
jwehrle
Tudo bem, acredito que entendo a diferença. Eu havia mudado o caminho da classe Projeto e Módulo build.gradle gms para a versão 3.2.0. É a alteração do módulo que causou o problema. Altere apenas a versão do caminho de classe do projeto build.gradle gms.
jwehrle
Também estava faltando o repo do jcenter ()! O projeto era muito antigo e não tinha esse repositório incluído!
precisa saber é o seguinte
Você quer dizer que devo adicionar essa linha manualmente ao arquivo?
precisa saber é o seguinte
125

Eu tenho um mesmo aviso causado ao com.google.gms: google-services.

A solução é atualizar o caminho de classe com.google.gms: google-services para o caminho de classe 'com.google.gms: google-services: 3.2.0' no arquivo build.gradle Projeto:

insira a descrição da imagem aqui

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
        classpath 'com.google.gms:google-services:3.2.0'
    }
}

allprojects {
    repositories {
        jcenter()
        google()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

No Android Studio, a versão 3.1 das dependências complie word é substituída pela implementação

dependências com aviso no android studio 3.1

dependencies {
            compile fileTree(dir: 'libs', include: ['*.jar'])
            compile 'com.android.support:appcompat-v7:27.1.0'
            compile 'com.android.support.constraint:constraint-layout:1.0.2'
            testImplementation 'junit:junit:4.12'
            androidTestImplementation 'com.android.support.test:runner:1.0.1'
            androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
    }

dependências OK no android studio 3.1

    dependencies {
            implementation fileTree(dir: 'libs', include: ['*.jar'])
            implementation 'com.android.support:appcompat-v7:27.1.0'
            implementation 'com.android.support.constraint:constraint-layout:1.0.2'
            testImplementation 'junit:junit:4.12'
            androidTestImplementation 'com.android.support.test:runner:1.0.1'
            androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'

    }

Gradel gerar pelo Android Studio 3.1 para novo projeto.

Gradel gerar pelo Android Studio 3.1 para novo projeto.

Visite https://docs.gradle.org/current/userguide/dependency_management_for_java_projects.html

Para detalhes https://docs.gradle.org/current/userguide/declaring_dependencies.html

Didier
fonte
Observe que "testCompile" muda para "testImplementation".
AJW
a maioria das respostas, e um dos mais populares, bem, estão todos com foco em com.google.gms: google-services, mas é tudo sobre como atualizar o estilo de nomeação de idade em ambos os arquivos Gradle
kommradHomer
32

Atualizei com.google.gms: google-services de 3.2.0 para 3.2.1 e o aviso parou de aparecer.

 buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.1'
        classpath 'com.google.gms:google-services:3.2.1'

    }
}
Prateek218
fonte
você só precisa alterar a versão, como eu tenho com 'com.google.gms: google-services: 3.2.0', basta substituir o 3.2.0 pelo 3.2.1.
Prateek218
Obrigado, eu atualizei a classe errada, por isso recebi o erro.
26418 Jhorra
2
Eu tenho a versão classpath 'com.google.gms:google-services:4.1.0'não mais atualizada, mas sim, é maior que 3.2.0. Ainda não há resolução!
sud007 22/02/19
@ sud007 você pode explicar um pouco o que problema você está enfrentando ou postar seu build.gradle (nível do projecto)
Prateek218
22

O uso da versão mais recente dos serviços do Google GMS resolveu isso para mim.

No nível do projeto, build.gradle:

buildscript {
    ...
    dependencies {
        classpath 'com.google.gms:google-services:3.2.1'
        ...  
    }
}
Hovanes Mosoyan
fonte
18

Abra seu arquivo build.gradle localizado aqui:

insira a descrição da imagem aqui

Esta é a maneira antiga de escrever as bibliotecas de dependência (para a versão 2 e versões gradle):

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile files('libs/volley.jar')
    compile 'com.android.support:support-v4:21.+'
}

Esta é a nova maneira (correta) de importar as dependências para a versão 3 do gradle:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    testImplementation 'junit:junit:4.12'
    implementation files('libs/volley.jar')
    implementation 'com.android.support:support-v4:21.+'
}
Gene
fonte
1
Valeu amigo! Esta parece ser a resposta mais atualizada aqui em janeiro de 2019
NaturalBornCamper
Esta resposta é útil para aqueles que estão enfrentando esse problema pela primeira vez. Embora o OP tenha uma pergunta diferente, que diz que mesmo após essas alterações, a mensagem de erro é exibida.
sud007 22/02/19
13

Resposta do google: https://issuetracker.google.com/issues/74048134

Ainda haveria alguma dependência usando compilação, verifique cuidadosamente as dependências de aplicativos e transitivas.

quangkid
fonte
1
Tirei todas as dependências em todas as build.gradles para o meu projeto e ainda obter o erro
behelit
3
EDIT: Foi causada por reino, usando versão mais antiga
behelit
7

https://issuetracker.google.com/issues/72479188 indica que os plugins às vezes podem introduzir dependências de "compilação" e é isso que aciona o aviso. Provavelmente, é mais fácil identificar o problema com uma estrela e aguardar até que ele seja corrigido para indicar quais plugins estão causando o problema.

Eric
fonte
6

Não há necessidade de remover a linha. Como Jkrevis escreveu, atualize o com.google.gms: google-services para 3.2.0 e interrompe os avisos.

Tom
fonte
1
Você substituiu todas as ocorrências de 'compilação' por 'implementação' no build.gradle do seu projeto (Módulo: App) e atualizou o com.google.gms: google-services no build.gradle (Project) para 3.2.0?
Tom
6

Eu encontro esse problema sem usar com.google.gms:google-services. A solução que resolve este tipo de problema, como abaixo:

  1. verifique build.gradlearquivos de todos os projetos e módulos. Ou apenas a palavra-chave de pesquisa global 'compilar' para descobrir onde causar esse aviso.
  2. se o método acima não puder resolver esse aviso, use o comando CLI, ./gradlew assembleDebug -d > gradle.log
    imprima as informações detalhadas de depuração em um arquivo chamado gradle.logou qualquer outro, pois as informações são demais. Em seguida, procure a palavra "AVISO" para encontrar a posição gradle.log, geralmente você pode encontrar qual dependência ou plugin causa o aviso.
zhangliang
fonte
2
Eu acho que essa é a solução geral. O problema pode ser causado por qualquer um, ou vários, dos seus dependências
Rasmusob
5

No meu caso, é causado pela biblioteca Realm, depois de atualizá-lo para a versão mais recente (5.1.0 até agora) do Realm, o problema foi resolvido!

Aqui está o script gradle de trabalho:

buildscript {
repositories {
    jcenter()
    google()
}

dependencies {
    classpath 'com.android.tools.build:gradle:3.1.2'
    classpath "io.realm:realm-gradle-plugin:5.1.0"
    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
    classpath 'com.google.gms:google-services:3.2.1'
  }
}
ken
fonte
3

A atualização da versão do serviço do google não funcionou para mim.

  • Primeiro, verifique se todas as suas dependências compileforam substituídas por implementation.
  • Atualize todas as dependências no seu projeto. Porque se uma de suas dependências estiver tendo compile, seu projeto mostrará esse erro. Portanto, atualize todas as versões das dependências.
Khemraj
fonte
2

vá para o arquivo build.gradle no nível do projeto, você encontrará as seguintes linhas destacadas

dependencies {
    classpath 'com.android.tools.build:gradle:3.1.4'  //place your cursor over here 
    //and hit alt+enter and it will show you the appropriate version to select


    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files

    classpath 'com.google.gms:google-services:4.0.2' //the same as previously
}
RABI Hamza
fonte
2

No meu caso, era uma dependência antiga que estava usando compile para as dependências transitivas: com.jakewharton.hugo

Depois de removê-lo do meu gradle, ele compilou.

PerrierCitror
fonte
1

A solução alternativa para resolver esse problema foi que eu usei uma versão mais antiga do Gradle, que pode ser encontrada aqui :

Usei a versão gradle-3.0-rc-1-src, mas outras podem funcionar também, embora provavelmente não deva ser mais nova que a versão 3.0.

Primeiro, extraia o arquivo zip para onde quiser.

Em seguida, vá para Arquivo -> Configurações -> Compilar, Execução, Implantação -> Nivelamento e altere a configuração para Usar distribuição local do gradle. Depois disso, verifique se o campo Gradle Home está apontando para o diretório .gradle no diretório para o qual você acabou de descompactar.

Reconstrua o projeto e tudo deve ficar bem.

tpn
fonte
0

Tentei alterar os serviços do google gms para o mais recente com.google.gms:google-services:3.2.1no Android Studio 3.0.1, mas o aviso ainda persiste.

Conforme recomendado pelo compilador, eu mudei todas as compiledependências para implementatione testCompilede testImplementationcomo esta ..

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:mediarouter-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
implementation 'com.google.firebase:firebase-ads:12.0.1'
implementation 'com.google.firebase:firebase-crash:12.0.1'
implementation 'com.google.firebase:firebase-core:12.0.1'
implementation 'com.google.firebase:firebase-messaging:12.0.1'
implementation 'com.google.firebase:firebase-perf:12.0.1'
implementation 'com.google.firebase:firebase-appindexing:12.0.1'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}

E finalmente o aviso é removido!

Haileapp
fonte
0

Você pode fazer isso duas opções:

  1. Adicione o caminho de classe 'com.google.gms: google-services: 3.2.0' no seu projeto: dependências build.gradle e
  2. Substitua seu módulo: build.gradle na dependência do complile com implementação e você não receberá nenhuma mensagem de aviso.
Jasbin Karki
fonte
0

Basta adicionar build.gradledebuild script

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

e todas as dependências "compile"substituem "implementation".

isso funcionou de mim.

Omae wa mou shindairu
fonte
Observe que se você estiver usando, classpathdeve usá-lo dentro de um buildscriptbloco; além disso, não se pode usar implementationdentro de um buildscriptbloco.
precisa saber é o seguinte
0

A versão atual é 4.2.0 :

buildscript {

repositories {
    google()
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:3.4.0'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
    classpath 'com.google.gms:google-services:4.2.0'
}

}

Frank Eno
fonte
0

Para mim, alterar compilar para implementação corrigiu

Antes

compile 'androidx.recyclerview:recyclerview:1.0.0'
compile 'androidx.cardview:cardview:1.0.0'
//Retrofit Dependencies
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'

Depois de

implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'androidx.cardview:cardview:1.0.0'
//Retrofit Dependencies
implementation 'com.squareup.retrofit2:retrofit:2.1.0'
implementation 'com.squareup.retrofit2:converter-gson:2.1.0'
Jagadesha NH
fonte
-2

Espero que você seja afetado pelo build.gradle (app). Se fizer isso, siga esta etapa

Substitua a compilação por androidTestImplementation em build.gradle

androidTestImplementation 'com.android.support:appcompat-v7:27.1.1'
androidTestImplementation 'com.android.support:design:27.1.1'

tão simples ! espero que isso resolva

Thiyagu
fonte
-3

No meu caso, o problema foi o plug-in gradle dos serviços do Google com a seguinte linha no arquivo gradle:

aplique o plug-in: 'com.google.gms.google-services'

A remoção disso resolveu o problema

Ujjwal Singh
fonte
-7

vá para você build.gradle (nível do aplicativo)

aplicativo do módulo build.gradle

e substitua a palavra "compilar" por "implementação"

funcionará 100%

Ayoub
fonte
6
Esta resposta não é útil. O OP já declarou que isso foi feito, portanto não pode ajudar.
precisa saber é o seguinte
1
Eu tive o mesmo problema, eu não poderia gerar meu aplicativo apk bcoz disso, essa resposta resolveu o meu problema
Ayoub
Esta não é a mesma situação, OP já afirmou que ele fez isso (eu também estou no mesmo barco) é devido a dependências
ElliotM
O OP disse que "substituí todas as ocorrências de compilação pela implementação".
mapo 18/07/19