De repente, ao sincronizar o Gradle, recebo este erro:
AVISO: A API 'variant.getJavaCompile ()' está obsoleta e foi substituída por 'variant.getJavaCompileProvider ()'. Ele será removido no final de 2019. Para obter mais informações, consulte https://d.android.com/r/tools/task-configuration-avoidance Módulos afetados: app
Eu tenho isso build.gradle
para o módulo de aplicativo:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'io.fabric'
android {
compileSdkVersion 28
buildToolsVersion "28.0.2"
defaultConfig {
applicationId "..."
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "..."
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
versionNameSuffix = version_suffix
[...]
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
[...]
}
debug {
[...]
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.2.61"
implementation 'androidx.appcompat:appcompat:1.0.0-rc02'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation "com.android.support:preference-v7:28.0.0"
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
implementation 'com.google.android.material:material:1.0.0-rc02'
[...]
}
Posso compilar o aplicativo corretamente, mas é um pouco preocupante e, a meu ver, algo deixará de funcionar no final de 2019. Alguma idéia do que é e como resolvê-lo?
Respostas:
Esse problema foi corrigido agora com a atualização do Fabric Gradle versão 1.30.0:
Versão de atualização: 19 de março de 2019
Consulte este link: https://docs.fabric.io/android/changelog.html#march-15-2019
Atualize sua dependência do caminho de classe no nível do projeto Gradle:
fonte
classpath 'io.fabric.tools:gradle:1.29.0'
. O que devo fazer?Eu enfrento esse problema após atualizar para o 3.3.0
Se você não está fazendo o que afirma o erro no arquivo gradle, é um plug-in que ainda não foi atualizado para a API mais recente que causa isso. Para descobrir qual plugin é, faça o seguinte (conforme explicado em "Melhores informações de depuração ao usar a API obsoleta" do anúncio 3.3.0 ):
Espero que ajude os outros
fonte
android.debug.obsoleteApi=true
, Para ler os detalhes registrados: Vá para a guia Build na parte inferior e na janela "Build Output", clique em "Toggle View". Quando você clicar que as cores bonitas desaparecem, role para o topo onde está escritoWARNING: API 'variant.getAssemble()' is obsolete
. Então abaixo, ele mostraREASON: Called from:
... no meu caso, era devido a medium.com/@xabaras/…No meu caso, foi causado por serviços gms 4.3.0. Então eu tive que mudar para:
Eu encontrei isso executando:
no terminal. Vá para exibir -> janelas de ferramentas -> terminal no Android Studio.
fonte
./
antes do comando, ou seja, se o terminal estiver definido como a raiz do seu projeto Android. Caso contrário, você precisará fazer o cd na raiz do projeto.Este é apenas um aviso e provavelmente será corrigido antes de 2019 com atualizações de plugins, por isso não se preocupe. Eu recomendo que você use versões compatíveis de seus plugins e gradle.
Você pode verificar a versão do plug-in e a versão gradle aqui para obter melhor experiência e desempenho.
https://developer.android.com/studio/releases/gradle-plugin
Tente usar as versões estáveis para obter um código suave e sem aviso / erro.
fonte
Eu também enfrentei o mesmo problema. E depois de pesquisar por um tempo, percebi que o aviso estava surgindo por causa do uso da versão mais recente do
google-services
plugin (versão 4.3.0). A propósito, eu estava usando este plugin para funcionalidades do Firebase em meu aplicativo. Tudo o que fiz foi fazer o downgrade do meugoogle-services
plug-in no buildscript no arquivo de nível build.gradle (Project) da seguinte maneira:fonte
Altere sua versão dos Serviços do Google de
build.gradle
:fonte
Este é um aviso emitido pelas ferramentas de construção por dois motivos.
1. Um dos plug-ins é confiar em tarefas em vez de em TaskProvider; não há muito o que possamos fazer.
2. Você configurou o uso da tarefa, onde ela suporta o TaskProvider.
Procure trechos como abaixo e atualize.
Da mesma forma, encontre usos de
'variant.getJavaCompile()'
ou'variant.javaCompile'
,'variant.getMergeResources()'
ou'variant.mergeResources'
. Substitua como acima.Mais informações em Prevenção de configuração de tarefas
fonte
./gradlew
. Isso não tem nada a ver com o AS, está nas ferramentas de construção. Faça upgrade / downgrade paracom.android.tools.build:gradle:3.2.0
e execute./gradlew
. Isso não virá.variant.generateBuildConfig.enabled
no meu projeto. Ainda recebo o aviso acima #variant.generateBuildConfig.enabled
no meu projeto. Ainda recebo o aviso acima #O downgrade da versão do Gradle funcionou para mim:
fonte
1) Adicione
android.debug.obsoleteApi=true
ao seugradle.properties
. Ele mostrará quais módulos são afetados pelo seu log de aviso.2) Atualize essas funções obsoletas.
variant.javaCompile
paravariant.javaCompileProvider
variant.javaCompile.destinationDir
paravariant.javaCompileProvider.get().destinationDir
fonte
Atualizar a versão do Kotlin ( Plugin e stdLib ) para a 1.3.1 resolveu esse aviso no meu caso. Atualize a versão do Kotlin em todo o projeto substituindo a versão existente do Kotlin por:
fonte
ext.kotlin_version = '1.2.71'
.. Alterado para a resposta acima e funcionou bem! - Eu apaguei o meu/android
e/ios
pastas e, em seguida, correuflutter create .
para reconstruir o aplicativo Flutter e colocouext.kotlin_version = '1.2.71'
na minhabuild.gradle
Volte do caminho de classe 'com.android.tools.build:gradle:3.3.0-alpha13' para o caminho de classe 'com.android.tools.build:gradle:3.2.0'
isso funcionou para mim
fonte
Atualize o plug-in de malha para o arquivo Gradle mais recente no nível do projeto (não no nível do aplicativo). No meu caso, essa linha resolveu o problema
para
fonte
No meu caso
foi
atualizado para
parece problema se foi por enquanto
fonte
No meu caso, eu tive que comentar o
com.google.firebase.firebase-crash
plugin:É um bug desde o Android Studio 3.3.0
fonte
oss-licenses-plugin
Atualizando gradle para gradle: 3.3.0
A tarefa padrão 'montar' se aplica apenas a variantes normais. Adicione variantes de teste também.
também comentar aplicar tecido
fonte
crashlytics { manifestPath = "$buildDir/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml" }
Quando o plug-in detecta que você está usando uma API que não é mais suportada, agora pode fornecer informações mais detalhadas para ajudar a determinar onde essa API está sendo usada. Para ver informações adicionais, você precisa incluir o seguinte no arquivo gradle.properties do seu projeto:
fonte
se eu remover esta linha a partir de
application gradle
:erro não aparecerá mais.
Link de referência github
fonte
as dependências são atualizadas para androidX. portanto, se você quiser usar o conteúdo do androidX, migre seu projeto para o androidX.
Com o Android Studio 3.2 e superior, você pode migrar rapidamente um projeto existente para usar o AndroidX, selecionando Refatorar> Migrar para AndroidX na barra de menus.
fonte
Isso corrigiu o meu problema. Tudo o que eu precisava fazer era fazer o downgrade do meu plug-in do google-services em buildscript no arquivo de nível build.gradle (Project) da seguinte maneira
fonte
Aqui está uma solução temporária: Se você estiver usando a sala, atualize para 1.1.0 ou superior
remove esse aviso para mim.
fonte
mantê-lo Projeto (não aplicativo) Depende do Build.gradle o código da versão do caminho de classe é novo
fonte
Esta é uma pergunta popular. Se você não usar esses métodos, a solução está atualizando as bibliotecas. Atualize sua versão do kotlin e todas as suas dependências, como fabric , protobuf etc. Se você tiver certeza de que atualizou tudo, tente perguntar ao autor da biblioteca.
fonte
A atualização de protobuf-gradle-plugin para a versão 0.8.10 resolveu meu problema. Substitua seu protobuf existente por
fonte
Isso se deve principalmente às bibliotecas obsoletas. Para verificar se há novas atualizações manualmente, navegue até
Isso deve ser o suficiente. Outra opção é executar uma atualização de dependência gradle usando
./gradlew dependencyUpdates
que produzirá um relatório como este:
fonte
a atualização dos serviços do google no nível do projeto
build.gradle
resolveu meu problema.Após a atualização:
fonte
Eu tive o mesmo problema e resolveu definindo a versão do plugin kotlin gradle no arquivo build.gradle.
mude isso
para
fonte
No meu caso, eu segui isso . Resumo, no nível do aplicativo gradle: altere isso:
para
fonte