it-swarm.com.de

API 'variant.getExternalNativeBuildTasks ()' ist veraltet und wurde durch 'variant.getExternalNativeBuildProviders ()' ersetzt

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.

182
Jude Fernandes

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

202
0xAliHn

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.

169
Anggrayudi H

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!

53
Amer Al Ziebak

Sie sind sich nicht sicher, was das eigentliche Problem ist, aber die aus dem Projekt herausgelösten Abhängigkeiten aus dem Projekt gelöst.

13
Jude Fernandes

Wenn Sie Crashlyticss 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

11
113408

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. 

10
Ryde

Aktuelle Nachrichten vom 24.01.2014

 enter image description here

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
    }
8

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

4
Trinity

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'
  1. fügen Sie diese Plugin-Abhängigkeit unter Plugin anwenden: 'com.Android.application' in der App-Ebene build.gradle.

        apply plugin: 'io.fabric'
    
  2. Synchronisieren Sie das Projekt mit gradle-Dateien.

2
amit pandya

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

2
RAHUL

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  quick feedback button sieht immer noch am vielversprechendsten aus.

2
Martin Zeitler

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.

1
0xalihn

In meinem Fall musste ichio.fabricplugin 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'
0
Fragment

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'
}
0
Pavan

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.

0
Henrique Monte

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.

0

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

0
Petar

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'
    }
}
0
Mohammad

dies behebt den Fehler: Klicken Sie in der Taskleiste auf Tools-> Kotlin-> Configure Kotlin in Project

0
Sadjad Abbasnia

Als ich das Projekt öffnete, drückte ich auf die Schaltfläche Run migrations in der rechten unteren Ecke von Android Studio. Es wurde eine Migration durchgeführt und das Problem gelöst, ohne die Abhängigkeit von Crashlytics zu kommentieren.

 enter image description here

0
pableiros