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

Lesezeit: 7 Minuten

Benutzer-Avatar
Jude Fernandes

Verwendung 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 sensible Informationen in der Datei app/build.gradle ausgelassen.

  • Können Sie Ihre build.gradle (App) posten?

    – Skizo-ozᴉʞS

    19. September 2018 um 18:31 Uhr

  • @Skizo-ozᴉʞS hat die Datei build.gradle des Projekts hinzugefügt

    – Jude Fernandes

    19. September 2018 um 18:36 Uhr

  • issuetracker.google.com/issues/116148147

    – Achso

    20. September 2018 um 7:36 Uhr

  • @alashow dies hängt mit einem anderen Problem zusammen, die Meldung dort ist “API ‘variant.getJavaCompile()’ ist veraltet ..”

    – Wadim Kotow

    20. Dezember 2018 um 10:16 Uhr

  • Problem besteht auch mit der stabilen Version

    – kp91

    15. Januar 2019 um 6:40 Uhr

  • Stellen Sie sicher, dass Sie es in build.gradle sowohl auf Projektebene als auch in der App ändern.

    – RJB

    16. März 2019 um 18:51 Uhr

  • Version 1.28.0 hat mein Problem behoben, aktuelle Version ist 1.29.0 docs.fabric.io/android/changelog.html#fabric-gradle-plugin

    – Alexander Hartmann

    22. Mai 2019 um 10:26 Uhr


  • Hier ist das Änderungsprotokoll: docs.fabric.io/android/changelog.html#march-15-2019

    – DSmidt

    8. Juli 2019 um 18:47 Uhr

  • Ich bekomme immer noch diese Warnung mit classpath 'io.fabric.tools:gradle:1.31.0' und implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'. Es ist entweder wieder kaputt oder nicht für alle Fälle behoben.

    – Gen S

    2. August 2019 um 6:41 Uhr

  • Woher hast du diese Gradle-Version von Fabric Tools? Ich kann nur 1.25.4 finden mvnrepository.com/artifact/io.fabric.tools/gradle

    – Lachlan Young

    25. November 2019 um 23:39 Uhr

  • Wäre es möglich, dass Sie auf den Fehlerbericht oder das Problem verlinken, das Sie mit Firebase geöffnet haben? Ich würde es gerne positiv bewerten.

    – Yuval

    15. Januar 2019 um 0:00 Uhr

  • Ich muss die verwenden io.fabric plugin, wie kann ich diese Warnung entfernen, ohne sie zu ändern?

    – 0xAliHn

    16. Januar 2019 um 13:57 Uhr

  • Das ist die Ursache, keine praktikable Lösung

    – Daniel Wilson

    17. Januar 2019 um 8:45 Uhr

  • Sie sagen, dass Sie es bis Ende des Jahres 2019 verwenden können. Im Moment benutze ich, wir werden sehen, was passiert )

    – support_ms

    21. Januar 2019 um 1:29 Uhr

  • Warum downgraden? Keinen Sinn! Es ist nur eine Warnung, es wurde noch nicht entfernt und kann Ihr Projekt bauen (das ganze Jahr 2019 …). Ich glaube, sie werden es in diesem Jahr beheben

    – Benutzer25

    25. Januar 2019 um 10:33 Uhr

  • Dann müssen Sie auch auf Android Studio 3.2.1 downgraden. Danke trotzdem

    – Rubén Viguera

    15. Januar 2019 um 11:15 Uhr


  • Ich hatte das gleiche Problem nach dem Upgrade von Android Studio (AS) auf Version 3.3. Ich habe die Gradle-Synchronisierung wieder zum Laufen gebracht, indem ich Gradle auf Version 4.6 und das Android-Gradle-Plugin auf Version 3.2.1 heruntergestuft habe, das waren die Versionen, die ich vor dem AS-Update verwendet habe. Sehen Sie sich die Tabelle an hier Wenn Sie Zweifel haben, wie Sie die Versionen für Gradle und das Plugin ändern können.

    – Rabie Jradi

    15. Januar 2019 um 12:57 Uhr

  • Es hat funktioniert, ohne etwas herunterzustufen, danke für den Vorschlag

    – Sid

    15. Januar 2019 um 19:28 Uhr

  • Sie müssen Ihr Android-Studio @RubénViguera nicht herunterstufen

    – Amer Alzibak

    23. Januar 2019 um 21:02 Uhr


  • Sie müssen nichts anderes als die Gradle-Version herunterstufen, wie in der Antwort erwähnt. Dies sollte die akzeptierte Antwort sein.

    – Dänische Ansari

    23. Februar 2019 um 7:14 Uhr


  • Wie wäre es, wenn wir einfach hinzufügen -dontwarn com.crashlytics.android.Crashlytics in proguard-rules.pro

    – Mustansir

    9. Februar 2019 um 8:28 Uhr


  • Wenn Sie die Warnung auf diese Weise entfernen, ist das Problem immer noch vorhanden und Sie müssen sich eventuell erneut mit dem Problem befassen

    – Gastón Sailén

    9. Februar 2019 um 15:59 Uhr

  • Recht! Es ist eine temporäre Lösung, um Builds zu kompilieren, aber es ist viel besser, als alles herunterzustufen.

    – Mustansir

    10. Februar 2019 um 4:37 Uhr


  • Ja, ein Downgrade wird funktionieren, wenn Sie die Warnung ignorieren, können Sie die aktualisierte Version behalten, aber es wird nicht funktionieren

    – Gastón Sailén

    10. Februar 2019 um 7:31 Uhr

  • @Mustansir, ich denke, es ist ein Gradle-bezogenes Problem und hat nichts mit Proguard zu tun.

    – Windreiter

    9. März 2019 um 16:18 Uhr

1351700cookie-checkAPI ‘variant.getExternalNativeBuildTasks()’ ist veraltet und wurde durch ‘variant.getExternalNativeBuildProviders()’ ersetzt

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy