web-dev-qa-db-ger.com

WARNUNG: Die API 'variant.getJavaCompile ()' ist veraltet und wurde durch 'variant.getJavaCompileProvider ()' ersetzt.

Beim Synchronisieren von Gradle bekomme ich plötzlich diesen Fehler:

WARNING: API 'variant.getJavaCompile()' is obsolete and has been replaced with 'variant.getJavaCompileProvider()'.
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

Ich habe diesen build.gradle für das App-Modul:

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'

    [...]
}

Ich kann die App richtig kompilieren, aber es ist etwas nervig, und aus meiner Sicht wird Ende 2019 irgendetwas aufhören zu arbeiten.

66
Arnyminer Z

Dies ist nur eine Warnung und wird wahrscheinlich vor 2019 mit Plugin-Updates behoben. Machen Sie sich also keine Sorgen. Ich würde Ihnen empfehlen, kompatible Versionen Ihrer Plugins und Gradle zu verwenden.

Sie können Ihre Plugin-Version und Gradle-Version hier überprüfen, um ein besseres Erlebnis und eine bessere Leistung zu erhalten.

https://developer.Android.com/studio/releases/gradle-plugin

Verwenden Sie die stabilen Versionen, um einen reibungslosen und warn-/fehlerfreien Code zu erhalten.

25
Harshil Shah

In meinem Fall wurde es von gms services 4.3.0 verursacht. Also musste ich es ändern zu:

com.google.gms:google-services:4.2.0

Ich habe dies durch Laufen gefunden:

gradlew sync -Pandroid.debug.obsoleteApi=true

im Terminal. Gehen Sie zu Ansicht -> Werkzeugfenster -> Terminal in Android Studio.

56
Numan Karaaslan

Ich stand auch vor dem gleichen Problem. Und nachdem ich eine Weile gesucht hatte, stellte ich fest, dass die Warnung aufgrund der Verwendung der neuesten Version des google-services-Plugins (Version 4.3.0) auftrat. Ich habe dieses Plugin übrigens für Firebase-Funktionalitäten in meiner Anwendung verwendet. Ich habe lediglich mein google-services -Plugin in buildscript in der Datei build.gradle (Project) wie folgt heruntergestuft:

buildscript{
    dependencies {
       // From =>
       classpath 'com.google.gms:google-services:4.3.0'
       // To =>
       classpath 'com.google.gms:google-services:4.2.0'
    }
}
23
Fahad Javed

Ich habe dieses Problem nach dem Update auf 3.3.0

Wenn Sie nicht tun, was der Fehler in der gradle-Datei angibt, ist dies ein Plugin, das immer noch nicht auf die neuere API aktualisiert wurde. Um herauszufinden, welches Plugin es ist, gehen Sie wie folgt vor (wie in "Bessere Debug-Informationen bei Verwendung einer veralteten API" der Ankündigung 3.3.0 ) erläutert:

  • Fügen Sie 'Android.debug.obsoleteApi = true' Ihrer gradle.properties -Datei hinzu, die den Fehler mit weiteren Details protokolliert
  • Versuchen Sie es erneut und lesen Sie die Protokolldetails. Es wird eine Spur von "problematischem" Plugin geben
  • Wenn Sie sich identifiziert haben, versuchen Sie es zu deaktivieren und sehen Sie, ob das Problem behoben ist
  • gehen Sie zur github-Seite des Plugins und erstellen Sie ein Problem, das ein detailliertes Protokoll und eine klare Beschreibung enthält, damit Sie den Entwicklern helfen können, das Problem für alle schneller zu beheben
  • seien Sie geduldig, während sie das Problem beheben, oder Sie beheben es und erstellen PR für Entwickler

Hoffe, es hilft anderen

20
Ewoks

Dieses Problem wurde mit dem Update von Fabric Gradle Version 1.28.0 behoben:

Update-Version: 19. März 2019

Bitte sehen Sie diesen Link: https://docs.fabric.io/Android/changelog.html#march-15-2019

Bitte aktualisieren Sie Ihre Klassenpfadabhängigkeit auf Projektebene Gradle:

buildscript {
    // ... repositories, etc. ...

    dependencies {
        // ...other dependencies ...
        classpath 'io.fabric.tools:gradle:1.28.0'
    }
}
13
M.Noman

Ändern Sie Ihre Google Services-Version in Ihrem build.gradle:

dependencies {
  classpath 'com.google.gms:google-services:4.2.0'
}
7

Dies ist eine Warnung, die Build-Tools aus zwei Gründen ausspucken.
1. Eines der Plugins basiert auf Task anstelle von TaskProvider. Es gibt nicht viel, was wir tun können.
2. Sie haben die Verwendung von task konfiguriert, wobei TaskProvider unterstützt wird.

WARNING: API 'variant.getGenerateBuildConfig()' is obsolete and has been replaced with 'variant.getGenerateBuildConfigProvider()'.
It will be removed at the end of 2019.
For more information, see https://d.Android.com/r/tools/task-configuration-avoidance

WARNING: API 'variant.getJavaCompile()' is obsolete and has been replaced with 'variant.getJavaCompileProvider()'.
It will be removed at the end of 2019.
For more information, see https://d.Android.com/r/tools/task-configuration-avoidance

WARNING: API 'variant.getMergeResources()' is obsolete and has been replaced with 'variant.getMergeResourcesProvider()'.
It will be removed at the end of 2019.
For more information, see https://d.Android.com/r/tools/task-configuration-avoidance

Suchen Sie nach Ausschnitten wie unten und aktualisieren Sie sie.

Android {
    <library|application>Variants.all { variant ->
        /* Disable Generating Build config */
        // variant.generateBuildConfig.enabled = true // <- Deprecated
        variant.generateBuildConfigProvider.configure {
            it.enabled = true // Replacement
        }
    }
}

Genauso finden Sie Verwendungen von 'variant.getJavaCompile()' oder 'variant.javaCompile', 'variant.getMergeResources()' oder 'variant.mergeResources'. Ersetzen Sie wie oben.

Weitere Informationen unter Taskkonfiguration vermeiden

5
VenomVendor

Gehen Sie vom Klassenpfad 'com.Android.tools.build:gradle:3.3.0-alpha13' zum Klassenpfad 'com.Android.tools.build:gradle :3.2.0' zurück.

das hat für mich funktioniert

Migriere dein Projekt nach androidX.

abhängigkeiten werden auf AndroidX aktualisiert. Also, wenn Sie AndroidX-Inhalte verwenden möchten Migrieren Sie Ihr Projekt zu AndroidX.

Mit Android Studio 3.2 und höher können Sie ein vorhandenes Projekt schnell auf AndroidX migrieren, indem Sie in der Menüleiste Refactor> Auf AndroidX migrieren auswählen.

Das Herabstufen von Abhängigkeiten kann dieses Mal Ihr Problem beheben - wird jedoch nicht empfohlen

2

In meinem Fall musste ich com.google.firebase.firebase-crash plugin auskommentieren:

apply plugin: 'com.Android.application'
// apply plugin: 'com.google.firebase.firebase-crash' <== this plugin causes the error

Es ist ein Fehler seit Android Studio 3.3.0

2
Anggrayudi H

Aktualisierung von Gradle nach Gradle: 3.3.0  

Die Standardaufgabe zum Zusammenbauen gilt nur für normale Varianten. Fügen Sie auch Testvarianten hinzu.

Android.testVariants.all { variant ->
    tasks.getByName('assemble').dependsOn variant.getAssembleProvider()
}

auch Kommentar Stoff anwenden

//apply plugin: 'io.fabric'
2
Krste Moskov

Aktualisieren Die Kotlin (Plugin und stdLib) Version bis 1.3.1 löste diese Warnung in meinem Fall. Aktualisieren Sie die Kotlin-Version im gesamten Projekt, indem Sie die vorhandene Kotlin-Version durch Folgendes ersetzen: 

ext.kotlin_version = '1.3.1'
1
erluxman

wenn ich dieses roh von der Anwendung gradle entferne:

apply plugin: 'io.fabric'

fehler wird nicht angezeigt Referenzlink github

1
Java coder

Dies hat mein Problem behoben. Ich musste lediglich mein Google-Services-Plugin in buildscript in der Datei build.gradle (Project) wie folgt downgraden

buildscript{
     dependencies {
        // From =>
        classpath 'com.google.gms:google-services:4.3.0'
        // To =>
        classpath 'com.google.gms:google-services:4.2.0'
        // Add dependency
        classpath 'io.fabric.tools:gradle:1.28.1'
    }
}
1
ali sampson

Wenn das Plugin feststellt, dass Sie eine API verwenden, die nicht mehr unterstützt wird, kann es jetzt detailliertere Informationen bereitstellen, mit denen Sie feststellen können, wo diese API verwendet wird. Um die zusätzlichen Informationen anzuzeigen, müssen Sie Folgendes in die Datei gradle.properties Ihres Projekts aufnehmen:

Android.debug.obsoleteApi=true
1
user8534182

Aktualisieren Sie das Fabric-Plug-in auf die neueste Gradle-Datei auf Projektebene (nicht auf App-Ebene). In meinem Fall hat diese Zeile das Problem gelöst

classpath 'io.fabric.tools:gradle:1.25.4'

zu

classpath 'io.fabric.tools:gradle:1.28.0'

1) Fügen Sie Android.debug.obsoleteApi=true zu Ihrem gradle.properties hinzu. Es wird Ihnen angezeigt, welche Module von Ihrem Warnprotokoll betroffen sind.

2) Aktualisieren Sie diese veralteten Funktionen.

  • variant.javaCompile bis variant.javaCompileProvider

  • variant.javaCompile.destinationDir bis variant.javaCompileProvider.get().destinationDir

1
Morgan Koh

Hier eine temporäre Problemumgehung: Wenn Sie Raum verwenden, aktualisieren Sie einfach auf 1.1.0 oder höher

implementation "Android.Arch.persistence.room:runtime:1.1.0"

es entfernt diese Warnung für mich.

0
Sergio KS

Dies ist eine beliebte Frage. Wenn Sie diese Methoden nicht verwenden, aktualisiert die Lösung die Bibliotheken. Bitte aktualisieren Sie Ihre kotlin version und alle Ihre Abhängigkeiten wie fabric, protobuf usw. Wenn Sie sicher sind, dass Sie alles aktualisiert haben, fragen Sie die Autor der Bibliothek.

0
monyag

behalten Sie Project (nicht App) Build.gradle Abhängigkeiten Klassenpfad Versionscode ist neu

 dependencies {
    classpath 'com.Android.tools.build:gradle:3.5.0-beta01'
    classpath 'com.novoda:bintray-release:0.8.1'
    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
0
Ven Ren

In meinem Fall 

build.gradle(Project)

war 

ext.kotlin_version = '1.2.71'

aktualisiert zu

ext.kotlin_version = '1.3.0'

sieht Problem ist vorerst gegangen

0
Sam

Das Downgrade der Version von Gradle hat für mich funktioniert: 

classpath 'com.Android.tools.build:gradle:3.2.0'
0
Naimish Verma