Usando o Android Studio 3.3 Canary 11 com a versão do plugin gradle 3.3.0-alpha11
. Emite o seguinte erro ao tentar sincronizar o 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
Clicar no erro leva-me a esta linha no arquivo gradle
applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "${variant.name}-${variant.versionName}.apk"
}
}
O que exatamente eu preciso mudar aqui?
projeto 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'
Eu pulei algumas constantes e outras informações confidenciais no arquivo app / build.gradle.
android
firebase
android-studio
android-gradle-plugin
fabric.io
Jude Fernandes
fonte
fonte
Respostas:
O problema foi corrigido na versão mais recente
'io.fabric.tools:gradle:1.30.0'
Atualize suas ferramentas de tecido gradle com 1.30.0
Para obter mais detalhes https://github.com/firebase/firebase-android-sdk/issues/198#issuecomment-473435453
fonte
classpath 'io.fabric.tools:gradle:1.31.0'
eimplementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
. Ele está quebrado novamente ou não foi corrigido para todos os casos.EDITAR
Este problema foi corrigido no Fabric 1.28.0 . No nível do seu
build.gradle
projeto, adicione a seguinte linha:Resposta Anterior
Isso acontece depois que eu atualizei o Android Studio para 3.3.0.
apply plugin: 'io.fabric'
é a causa. Enviei um relatório de bug à equipe do Firebase sobre esse problema.Você tem 3 opções:
Aguarde até a próxima versão do plugin Fabric ser lançada. Verifique a versão mais recente aqui .
Faça o downgrade para o Android Studio 3.2.1 .
Comente o
io.fabric
plug - in.No
build.gradle
módulo do seu aplicativo:No entanto, você ainda pode criar e executar seus projetos, mesmo que esse erro apareça. Ignore isso.
fonte
io.fabric
plugin, então como posso remover este aviso sem alterar isso?no aplicativo build.gradle, faça o downgrade para esta versão estável do gradle:
Isso acontece depois que eu atualizei o Android Studio para a solução temporária 3.3, até que eles o corrigam!
edit: você não precisa fazer o downgrade do seu estúdio android!
fonte
ATUALIZAÇÃO A partir de hoje, você pode usar
classpath 'io.fabric.tools:gradle:1.28.0'
para corrigir esse problema!Se comentar o
Crashlytics
plugio.fabric
- in no arquivo gradle do aplicativo funcionou temporariamente para vocêA atualização das dependências de classificação da malha no arquivo de classificação do projeto resolverá permanentemente o problema:
NB: isso não remove os avisos, mas permite que você use o Crashlytics com AS3.3 +
fonte
crashlytics
ativado. Portanto, para manter o Crashlytics e continuar pressionando, você pode usar a atualização acima mencionada, mesmo que ela ainda acione "avisos".Não tenho certeza qual é o problema real, mas comentando as dependências relacionadas ao crashlytics do problema resolvido do projeto.
fonte
Está confirmado como bug para o Crashlytics e eles estão trabalhando nisso.
https://issuetracker.google.com/issues/116408637
Citado pelo responsável do Google:
Para mim, meu aplicativo de depuração está funcionando bem no meu dispositivo apenas executando e ignorando o aviso sem comentar o Crashlytics ou o Fabric. Não tentei produzir.
Atualizar:
O Google Issue Tracker marcou esses problemas como Não corrigidos (impossível) porque todos os problemas eram do Crashlytics e permitiam que as correções fossem feitas pela equipe do Crashlytics (apesar de serem o mesmo Googler ...).
Eles sugerem seguir este link para atualizações do Crashlytics:
https://github.com/firebase/firebase-android-sdk/issues/198
Nota: Ainda estou usando o Android Studio 3.3 com io.fabric.tools:gradle:1.26.0 sem comentar nenhum dos Craslytics e funciona bem no meu aplicativo de depuração.
Atualizar:
Posso confirmar agora que ele funciona bem no meu aplicativo de versão de produção / lançamento. Como sei que funciona? Porque ele me enviou de volta um relatório de falhas -_- '
De qualquer forma, apenas ignore o aviso, eles devem corrigi-lo eventualmente.
Aww, acabei de ler que tinha consertado com tecido 1.28.0 :)
fonte
Últimas notícias de 24/01/2019
Informações aqui https://issuetracker.google.com/issues/116408637
Precisamos esperar até que o Crashlytics tenha uma solução, aqui está o problema do GitHub aberto
https://github.com/firebase/firebase-android-sdk/issues/198
A única maneira que estou usando agora para não comentar o plug-in io.fabric é desclassificar minha gradle e atualizar meu caminho de classe da malha (isso está funcionando no meu aplicativo de produção)
fonte
-dontwarn com.crashlytics.android.Crashlytics
emproguard-rules.pro
Como foi dito, o problema está no Fabric / Crashlytics.
É um bug no lado do Crashlytics / Firebase, verifique o seguinte link e veja o status do bug: https://github.com/firebase/firebase-android-sdk/issues/198
fonte
o rastreador de problemas pode se referir a "configuração lenta de tarefas" -
isso é pelo menos o que evitar configuração de tarefas sugere.
mas é possível impedir o acesso a esse método obsoleto de
BaseVariantImpl
, quandovariant.outputs.all
não for acessado (internamente) - ou quando as verificações puderem impedir o acesso; ou ao acessar a variante por seu nome; ou desabilitar de alguma forma as tarefas de construção nativas externas para a variante. veja também a sincronização do projeto de variante única opção de , que parece relacionada.ou espere por ferramentas de construção
3.3.0-alpha12
ou3.3.0-beta1
... isso nem é umrelease candidate
, portanto, investir muito tempo pode ser inútil - exceto usá-lo para registrar outro relatório de erro.o novo botão de feedback rápido ainda parece o mais promissor.
fonte
android.debug.obsoleteApi=true
para ver de onde vem. houve alguns métodos renomeados,Provider
anexados ao nome.3.3.0
lançamento quebrou algumas coisas, já que a API variante havia mudado. pode vincular uma discussão recente: stackoverflow.com/questions/54206898/… (adicionou um resumo como resposta lá).Para mim, segui estas etapas: 1. atualize a dependência Gradle no nível do projeto build.gradle.
adicione esta dependência de plug-in abaixo: aplique o plugin: 'com.android.application' no nível do aplicativo build.gradle.
Sincronize o projeto com arquivos gradle.
fonte
Isso acontece devido à atualização do seu Android Studio do Android Studio 3.2.0 para o Android Studio 3.3.0. Atualize suas dependências Gradle (projeto) do IO.Fabric. Gostar:
e também atualize sua versão do Kotlin para
Isso resolverá esses problemas. obrigado
fonte
O registro de build imprime como depurar isso, especialmente o que você precisa executar com build
-Pandroid.debug.obsoleteApi=true
, que imprime o rastreamento de pilha da chamada para a API obsoleta e você pode descobrir qual código / plugin chama.Se acabar sendo o seu código - use a nova API do provedor ( leia o documento Lazy Task Configuration )
Se vier de outro plug - in, informe-os com rastreamento de pilha e mensagem de aviso e talvez envie um patch. Como neste caso, está relacionado ao
io.fabric
problema.fonte
isso foi corrigido na versão mais recente do plugin gradle Fabric, 1.28.0, que entrou no ar hoje. Tenha isso em seu build.gradle de nível superior:
fonte
Quando abri o projeto, pressionei o
Run migrations
botão exibido no canto inferior direito deAndroid Studio
. Uma migração foi realizada e o problema foi resolvido sem comentar aCrashlytics
dependência.fonte
Alterar a compatibilidade de origem no
build.gradle
arquivo de módulo para Java 8 corrige o problemaCertifique-se de reconstruir o projeto depois de adicionar essas linhas
fonte
build.gradle
ou no módulo (/ app)?isso corrigirá o erro: Na barra de tarefas, clique em Ferramentas-> Kotlin-> Configurar o Kotlin no Project
fonte
No meu caso, eu precisava usar o
io.fabric
plug-in, e a solução foi atualizar para a versão gradle mais recente das ferramentas de malha:fonte
Para aqueles que precisam manter o plug-in do Fabric aplicado, a solução temporária é voltar para a versão anterior da gradle no nível do projeto.
Altere a versão do caminho de classe para
com.android.tools.build:gradle:3.2.1
.fonte
Foi um problema com a versão e o plug - in mais recentes
gradle
(no meu caso3.3.2
)Fabric.io
. Agora é resolvido pela nova versão que os usuários devem ter em seu nível superiorbuild.gradle
:fonte
Correção é atualizar os arquivos gradle de compilação raiz para os mais recentes. E essa resposta é verdadeira agora. mais uma vez, novas mudanças serão implementadas pelo gradle e pelo Android SDK. Às vezes, a resposta varia no decorrer do tempo.
fonte
primeiro de tudo isso não é um erro
é aviso
e é exibido quando o gradle de atualização para 3.3.0 ocorre frequentemente porque io.fabric, então aguarde até que a versão atual do fabric fabric onde o aviso ainda seja exibido seja 'io.fabric.tools:gradle:1.27.1'
fonte