Verwenden von Android Studio 3.3 Canary 11 mit der Gradle-Plugin-Version 3.3.0-alpha11
. Beim Versuch, gradle zu synchronisieren, wird der folgende Fehler ausgegeben
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
Ein Klick auf den Fehler führt mich zu dieser Zeile in der gradle-Datei
applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "${variant.name}-${variant.versionName}.apk"
}
}
Was genau muss ich hier ändern?
projekt 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:[email protected]'
implementation 'com.daimajia.androidanimations:library:[email protected]'
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:[email protected]') {
transitive = true
}
api('com.crashlytics.sdk.Android:answers:[email protected]') {
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'
Ich habe einige Konstanten und andere vertrauliche Informationen in der Datei app/build.gradle übersprungen.
Das Problem wurde in der neuesten Version behoben. 'io.fabric.tools:gradle:1.28.0'
Bitte aktualisieren Sie Ihre beiden Gradle Fabric-Werkzeuge mit 1.28.0
buildscript {
// ... repositories, etc. ...
dependencies {
// ...other dependencies ...
classpath 'io.fabric.tools:gradle:1.28.0'
}
}
Für weitere Informationen https://github.com/firebase/firebase-Android-sdk/issues/198#issuecomment-473435453
Es passiert, nachdem ich Android Studio auf 3.3.0 aktualisiert habe. apply plugin: 'io.fabric'
ist die Ursache. Ich habe einen Fehlerbericht zu diesem Problem an das Firebase-Team gesendet.
Sie haben 3 Möglichkeiten:
Warten Sie, bis die nächste Version des Fabric-Plugins veröffentlicht wird. Überprüfen Sie die neueste Version hier .
Downgrade auf Android Studio 3.2.1 .
Kommentieren Sie io.fabric
Plugin aus.
In build.gradle
des Moduls Ihrer App:
apply plugin: 'com.Android.application'
// apply plugin: 'io.fabric' <== this plugin causes the error
Sie können Ihre Projekte jedoch trotzdem erstellen und ausführen, obwohl dieser Fehler angezeigt wird. Ignoriere es einfach.
downgrade auf diese stabile Version von Gradle in der Anwendung build.gradle:
classpath 'com.Android.tools.build:gradle:3.2.1'
Es passiert, nachdem ich Android Studio auf 3.3, temporäre Lösung, aktualisiert habe, bis es behoben ist!
bearbeiten: Sie müssen Ihr Android-Studio nicht herunterstufen!
Sie sind sich nicht sicher, was das eigentliche Problem ist, aber die aus dem Projekt herausgelösten Abhängigkeiten aus dem Projekt gelöst.
Wenn Sie Crashlytics
s Plugin io.fabric
in der App-Gradle-Datei auskommentieren, funktionierte das für Sie vorübergehend
//apply plugin: 'io.fabric'
Wenn Sie die Abhängigkeiten der Fabric Gradle von der Project Gradle-Datei aktualisieren, wird das Problem dauerhaft gelöst:
classpath 'io.fabric.tools:gradle:1.27.0'
Hinweis: Die Warnungen werden dadurch nicht entfernt, Sie können jedoch Crashlytics mit AS3.3 + verwenden
Es ist ein Fehler für Crashlytics und sie arbeiten daran.
https://issuetracker.google.com/issues/116408637
Zitat von Google-Empfänger:
je ... @ google.com # 23 23. Januar 2019 01:40 Uhr
Hallo zusammen,Vielen Dank für Ihre Geduld.
Es sieht so aus, als ob der Fehler in allen Fällen von crashlytics kommt und ich habe einen Fehler mit ihnen eingereicht.
Ich werde Sie über den Status auf dem Laufenden halten.
Für mich funktioniert meine Debug-App auf meinem Gerät einwandfrei, indem sie die Warnung ausführt und ignoriert, ohne Crashlytics oder Fabric zu kommentieren. Ich habe nicht für die Produktion versucht.
Update:
Google Issue Tracker hat diese Probleme als "Nicht beheben" (Unlösbar) gekennzeichnet, da alle Probleme von Crashlytics stammten und Korrekturen durch das Crashlytics-Team vorgenommen wurden (obwohl sie die gleichen Googler sind ...).
Sie schlagen vor, diesem Link für Crashlytics-Updates zu folgen:
https://github.com/firebase/firebase-Android-sdk/issues/198
Hinweis: Ich verwende immer noch Android Studio 3.3 mit io.fabric.tools:gradle: 1.26.0, ohne Craslytics zu kommentieren, und es funktioniert gut mit meiner Debug-App.
Aktuelle Nachrichten vom 24.01.2014
Infos hier https://issuetracker.google.com/issues/116408637
Wir werden warten müssen, bis Crashlytics eine Lösung gefunden hat. Hier ist das Problem mit GitHub
https://github.com/firebase/firebase-Android-sdk/issues/198
Die einzige Möglichkeit, die ich jetzt verwende, um das io.fabric -Plugin nicht zu kommentieren, besteht darin, mein Gradle herunterzustufen und meinen Klassenpfad zu aktualisieren (dies funktioniert in meiner Produktions-App)
dependencies {
classpath 'com.Android.tools.build:gradle:3.2.1'
classpath 'com.google.gms:google-services:4.2.0'
classpath 'io.fabric.tools:gradle:1.27.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
Wie gesagt, das Problem liegt bei Fabric/Crashlytics.
apply plugin: 'io.fabric'
Es ist ein Fehler auf der Crashlytics/Firebase-Seite. Überprüfen Sie den folgenden Link und überprüfen Sie den Fehlerstatus: https://github.com/firebase/firebase-Android-sdk/issues/198
Für mich habe ich die folgenden Schritte ausgeführt: 1. Aktualisieren Sie die Gradle-Abhängigkeit auf Projektebene build.gradle.
classpath 'io.fabric.tools:gradle:1.28.0'
fügen Sie diese Plugin-Abhängigkeit unter Plugin anwenden: 'com.Android.application' in der App-Ebene build.gradle.
apply plugin: 'io.fabric'
Synchronisieren Sie das Projekt mit gradle-Dateien.
Dies geschieht aufgrund des Updates Ihres Android Studios von Android Studio 3.2.0 auf Android Studio 3.3.0. Aktualisieren Sie Ihre Absturzabhängigkeiten (Projekt) von IO.Fabric. Mögen:
classpath 'io.fabric.tools:gradle:1.27.1'
und aktualisieren Sie auch Ihre Kotlin-Version auf
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.20"
Dadurch werden diese Probleme gelöst. Vielen Dank
der Issue-Tracker verweist möglicherweise auf "faule Task-Konfiguration" -
das ist zumindest das, was Task-Konfigurationsvermeidung vorschlägt.
aber man kann möglicherweise den Zugriff auf diese veraltete Methode von BaseVariantImpl
verhindern, wenn variant.outputs.all
nicht auf diese Methode (intern) zugreift - oder wenn Überprüfungen den Zugriff verhindern können; oder beim Zugriff auf die Variante anhand ihres Namens; oder deaktivieren Sie die externen nativen Build-Tasks für die Variante. Siehe auch die Option Einzelvarianten-Projektsynchronisation , die eher verwandt scheint.
oder warten Sie auf build-tools3.3.0-alpha12
oder 3.3.0-beta1
... das ist nicht einmal ein release candidate
, daher ist es möglicherweise sinnlos, zu viel Zeit zu investieren - es sei denn, Sie verwenden es, um einen anderen Fehlerbericht einzureichen.
das neue schnelle feedback button sieht immer noch am vielversprechendsten aus.
Das Protokoll des Builds wird gedruckt, um dieses Problem zu beheben. Insbesondere müssen Sie build mit -Pandroid.debug.obsoleteApi=true
ausführen. Dadurch wird der Stack-Trace des Aufrufs an die veraltete API ausgegeben, und Sie können herausfinden, in welchem Plugin/Code es aufgerufen wird.
Wenn es Ihr Code ist - verwenden Sie die neue Provider-API ( lesen Sie die Lazy Task-Konfigurationsdatei ).
Wenn es von anderen Plugins kommt - melden Sie sie mit Stack-Trace und Warnmeldung und senden Sie ggf. einen Patch. Wie in diesem Fall bezieht sich das auf io.fabric
Problem.
In meinem Fall musste ichio.fabric
plugin verwenden, und die Lösung bestand darin, auf die neueste Version der Fabric-Tools zu aktualisieren:
classpath 'com.Android.tools.build:gradle:3.3.0'
classpath 'io.fabric.tools:gradle:1.27.0'
Fix ist das Update der Root Build Gradle Dateien auf den neuesten Stand. Und diese Antwort gilt jetzt. in fureture wird wieder eine neue änderung von gradle und Android SDK implementiert. Manchmal wird die Antwort im Laufe der Zeit variieren.
repositories {
maven { url "https://jitpack.io" }
maven {
url 'https://maven.fabric.io/public'
}
google()
jcenter()
}
dependencies {
classpath 'com.Android.tools.build:gradle:3.5.0'
classpath 'com.google.gms:google-services:4.3.0'
classpath 'io.fabric.tools:gradle:1.30.0'
}
Für diejenigen, die das Fabric-Plugin beibehalten müssen, besteht die temporäre Lösung darin, auf Projektebene zur vorherigen Version des Gradle zurückzukehren.
Ändern Sie die Klassenpfadversion in com.Android.tools.build:gradle:3.2.1
.
Ich konnte das Projekt auch nach dem Update von Android Studio nicht starten. Nach dem Löschen von .gradle, .idea, dem Erstellen von Ordnern und dem erneuten Importieren des Projekts hat alles funktioniert, aber die Warnung bleibt bestehen.
Das Ändern der Quellkompatibilität in der Moduldatei build.gradle
in Java 8 behebt das Problem
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
Stellen Sie sicher, dass Sie das Projekt nach dem Hinzufügen dieser Zeilen neu erstellen
Es gab ein Problem mit der neuesten Version von gradle
(in meinem Fall 3.3.2
) und dem Fabric.io
-Plugin. Es ist jetzt durch die neue Version gelöst. Benutzer sollten dies in ihrem obersten build.gradle
haben:
buildscript {
// ... repositories, etc. ...
dependencies {
// ...other dependencies ...
classpath 'io.fabric.tools:gradle:1.28.0'
}
}
dies behebt den Fehler: Klicken Sie in der Taskleiste auf Tools-> Kotlin-> Configure Kotlin in Project