Gradle-Plug-Ins von Drittanbietern können die Ursache sein

132

Nach dem Update auf Android Studio 3.1 wurde folgende Fehlermeldung angezeigt:

Das Projekt funktioniert einwandfrei und dies ist meistens nur eine Warnung. Meine Frage ist also, was die Bedeutung der Warnung ist und wie ich sie loswerden kann.

Die relevanten Teile aus Gradle-Dateien:

Das ist mein Projekt build.gradle

buildscript {
    ext {
        kotlin_version = '1.2.31'
        anko_version = '0.10.4'
        room_version = '1.0.0'
        support_version = '27.1.0'
        firebase_version = '12.0.0'
        gms_version = '12.0.0'
    }

    repositories {
        google()
        jcenter()
        maven { url 'https://dl.bintray.com/kotlin/kotlin-dev' }
        maven { url 'https://maven.fabric.io/public' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
        maven { url "https://jitpack.io" }
        maven { url 'https://dl.bintray.com/kotlin/kotlin-dev' }
    }
}

Und das ist die build.gradleDatei meiner App :

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

android {
    compileSdkVersion 27
    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
humazed
quelle
1
Laut issuetracker.google.com/issues/74537216 wurde dieses Problem in AS3.2
Angel Koh
Build> Rebuild Projectarbeitete von mir
Zohab Ali

Antworten:

143

Um das Problem zu beheben, entfernen Sie Instant App Provision aus den "Konfigurationen ausführen" und lassen Sie nur die Gradle-Aware Make.

Run -> Edit Configurations..

Meine Run / Debug-Konfigurationen nach erfolgreicher Erstellung

Ich habe AndroidStudio 3.1, Gradle Plugin 3.1.0und Kotlin Bibliotheksversion 1.2.30.

Engel Kjoseski
quelle
5
Das funktioniert tatsächlich, aber jede Idee, warum es passiert ist und wie Sie zu dieser Lösung gekommen sind.
Humazed
59
und aus irgendeinem Grund Instant App Provisionskehrt es nach dem Löschen immer an seinen Platz zurück.
Humazed
3
Deaktiviert dies die sofortige Ausführung?
Caleb_Allen
7
@Caleb_Allen nein, aber niemand verwendet trotzdem Instant Run. Dies ist für "Sofort-Apps", nicht für Sofort-Run
Tim
4
Für alle, bei denen dies immer wieder vorkommt (wie @humazed), habe ich eine Lösung gefunden: Gehen Sie zuerst noch Run > Edit Configurationseinmal zu. Dann gehen Sie auf , Edit Defaultsindem Sie die Taste mit dem Schraubenschlüssel - Symbol oben klicken. Wählen Sie Android Appund lassen Sie nur Gradle-aware Makewie zuvor. Klicken Sie auf Anwenden.
b_yng
17

Ich habe Android Studio neu gestartet und das Problem ist verschwunden.

Klicken Sie auf Datei -> Caches ungültig machen / neu starten

Jedes Mal, wenn ich die Gradle-Datei ändere, muss ich Android Studio neu starten, sonst tritt das Problem wieder auf.

Sie können dies auch versuchen:

  1. Nachbestellte Repositorys an:

    mavenCentral()
    maven { url 'https://jitpack.io' }
    google()
    jcenter()
  2. Löschen dieses Ordners: ~ / .gradle / caches des Benutzers und manuelles Löschen des App-Erstellungsordners , dann bereinigen und neu erstellen .

SpkingR
quelle
Ich kann meine App jedoch immer noch nicht ausführen, da sie das Projekt vor dem Start erstellt.
Endlosschleifen
7

Was hat das Problem für mich behoben:

  • Ändern Sie die Version des Gradle-Plugins in 3.1.0
  • Ändern Sie die Kotlin-Version in 1.2.30
  • Dann änderte Android Studio Gradle Wrapper auf Version 4.4
  • Dann sagte Android Studio, dass die Version der verwendeten Build-Tools war 27.0.3und dass ich sie ändern sollte, 27.0.3damit ich auch das Ziel-SDK ändern konnte27
  • Ich habe dies zu meinem gradle.build hinzugefügt:

    kapt {
         generateStubs = true
     }

Ich hoffe, es hilft

Júlia Garrigós
quelle
5

bei Android Studio v3.1.2 passiert Fehler:

Folder D:\AndroidProjects\app\build\generated\source\kaptKotlin\debug
Folder D:\AndroidProjects\app\build\generated\source\kaptKotlin\release
3rd-party Gradle plug-ins may be the cause

weil dataBinding apply plugin: 'kotlin-kapt'so hinzufügen

kapt {
    generateStubs = true
}
  1. Ändern Sie die Version des Gradle-Plugins in 3.1.2
  2. Ändern Sie die Kotlin-Version auf 1.2.30
  3. Dann änderte Android Studio Gradle Wrapper auf Version 4.4
  4. Dann sagte Android Studio, dass die verwendete Version der Build-Tools 27.1.1 war und dass ich sie auf 27.1.1 ändern sollte, also habe ich auch das Ziel-SDK auf 27 geändert
任 非凡
quelle
5

Hier sind einige Schritte, die ich befolgt habe. In meinem Fall ist das Problem behoben!

Plattformmodule für Android Das Update der Funktion für experimentelle Multiplattform-Projekte bietet Unterstützung für Android-Plattformmodule. Diese Module sollten das entsprechende Plugin im Gradle-Build-Skript anwenden und können den gemeinsam genutzten Code eines gemeinsamen Moduls verwenden:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-platform-android'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
// ...
// ...

Kapt-Diagnosepositionen Ab sofort kann kapt, das Kotlin-Tool zur Verarbeitung von Anmerkungen, Links zu Positionen im ursprünglichen Kotlin-Code anbieten, anstatt Java-Stubs zu generieren, da es Fehler meldet, die während der Verarbeitung von Anmerkungen auftreten. Sie können diese Funktion aktivieren, indem Sie diese Zeilen zum Gradle-Build-Skript (build.gradle) hinzufügen:

kapt {
    mapDiagnosticLocations = true
}

Füge das hinzu:

allprojects {
        repositories {
            jcenter()
            google()
        }
    }

Vergiss das nächste nicht:

// Architecture Component - Room

     implementation "android.arch.persistence.room:runtime:1.1.0-beta1"
        kapt "android.arch.persistence.room:compiler:1.1.0-beta1"

      // Lifecyles, LiveData and ViewModel
    kapt 'com.android.databinding:compiler:3.1.0'


 // ViewModel and LiveData
    implementation "android.arch.lifecycle:extensions:1.1.1"

// alternatively, just ViewModel
    implementation "android.arch.lifecycle:viewmodel:1.1.1"

 // alternatively, just LiveData
     implementation "android.arch.lifecycle:livedata:1.1.1"
       kapt "android.arch.lifecycle:compiler:1.1.1"

 // Room (use 1.1.0-beta1 for latest beta)
    implementation "android.arch.persistence.room:runtime:1.0.0"
      kapt "android.arch.persistence.room:compiler:1.0.0"


// Paging
    implementation "android.arch.paging:runtime:1.0.0-alpha7"

        // Test helpers for LiveData
    testImplementation "android.arch.core:core-testing:1.1.1"

        // Test helpers for Room
 testImplementation "android.arch.persistence.room:testing:1.0.0"
  1. Reinigen Sie Ihr Projekt

  2. Bauen und fertig!

Fügen Sie all dies hinzu, reinigen Sie Ihr Projekt, erstellen Sie und das war's! :) Lass es mich wissen, wenn das funktioniert! (Wenn es bei Ihnen nicht funktioniert, helfe ich Ihnen mit einer anderen Lösung)

Weitere Infos: Android Site :) Lass es mich wissen, wenn es funktioniert! (Wenn es nicht funktioniert, werde ich versuchen, Ihnen zu helfen, einen besseren Weg zu finden)

Wenn Sie eine Bewertung abgeben, erklären Sie warum

Cristofer
quelle
1
Das Hinzufügen der Zeile mapDiagnosticLocations = truezur kaptKonfiguration funktioniert
naja,
@ Kuhnroyal Ich freue mich über Ihr Feedback! Ich wünsche Ihnen einen schönen Tag und suche nach einer besseren Lösung
Cristofer
5

Was mir tatsächlich geholfen hat, ist das Hinzufügen

kapt {
     generateStubs = true
}

in build.gradle

Andrey Aleev
quelle
3

In meinem Fall löste keine der oben genannten Lösungen mein Problem. Ich verwendete die Kotlin-Version 1.2.50, ohne Instant Run zu erwähnen, und der Build erzeugte keine Dagger-Klassen. Daher finde ich diese Frage heraus, die mein Problem anscheinend gelöst hat In meiner Situation handelt es sich um ein Problem im Zusammenhang mit der neuen Kotlin-Version. Daher habe ich ein Downgrade auf Version 1.2.41 durchgeführt und einwandfrei funktioniert. Übrigens habe ich gerade bis zu diesem Punkt verfolgt, weil ich die Umschaltansicht auf dem Build-Bildschirm verwendet habe.

1: Wählen Sie die Umschaltansicht und erstellen Sie Ihr Projekt

Ansicht umschalten

2: Sie werden genau sehen können, was passiert ist

Error

Stackoverflow-Frage: Kotlin 1.2.50 fragt nach baseFeatureInfoDir

Issue-Tracker: https://issuetracker.google.com/issues/110198434

Pedro Okawa
quelle
2

Versuchen Sie, Instant Run aus den Einstellungen zu entfernen, und gradle kann loslegen.

Es hat bei mir funktioniert.

Munish Thakur
quelle
2

Hier sind einige Schritte, die ich befolgt habe und die das Problem in meinem Fall behoben haben.

  1. Installieren Sie zunächst die Version des Kotlin-Plugins auf '1.2.31' und aktualisieren Sie sie in der Datei build.gradle wie unten.

Abhängigkeiten {Klassenpfad 'com.android.tools.build:gradle:3.1.0' Klassenpfad "org.jetbrains.kotlin: kotlin-gradle-plugin: $ 1.2.31"}

  1. Projekt reinigen.

  2. Erstellen Sie schließlich das Projekt neu.

Manish Karena
quelle
1
  1. entfernen apply plugin: 'kotlin-kapt'
  2. füge mavenCentral()in build.gradle hinzu wie:

    allprojects { repositories { mavenCentral() google() jcenter() } }

  3. Projekt synchronisieren und bereinigen
Dan Alboteanu
quelle
0

Hier ist ein Ansatz, wie ich dieses Problem für meinen Fall behebe:

Aktualisieren Sie zunächst Ihre Android-Gradle-Plugin-Version aus der Projekt-Build-Gradle-Datei und anschließend Ihre Gradle-Version aus den Gradle-Eigenschaften.

Aktualisieren Sie abschließend Ihre kotlin-Version (obligatorisch) aus der Gradle-Datei für die Projekterstellung auf kotlin_version = '1.2.30' oder höher.

Versuchen Sie nun, Ihr Projekt zu bereinigen und zu erstellen. Problem sollte behoben sein. Jedes Mal, wenn Sie nach dem Erstellen erneut erstellen, tritt wahrscheinlich erneut ein Problem auf. Bereinigen Sie Ihr Projekt einfach erneut und erstellen Sie es anschließend.

0xAliHn
quelle
0

Dies liegt daran, dass der Kapt-Annotationsprozessor dieses Verzeichnis zum Speichern von Kotlin-generierten Dateien verwendet. Android erkennt den Pfad derzeit standardmäßig nicht.

Siehe weitere Details

Virco
quelle
0

Hinzufügen einer weiteren Antwort für diejenigen, die nicht entfernen konntenInstant App Provision , da sie immer wieder angezeigt wird.

Erstellen Sie das Projekt manuell: ./gradlew assembleDebug

Es ist ein Hotfix, aber es wird funktionieren (da das Problem wahrscheinlich mit Android Studio zusammenhängt).

mrek
quelle
0

Ich hatte dieses Problem bei der Verwendung von Realm mit Kotlin in Android Studio.
Gehen Sie zur Lösung folgendermaßen vor:

  1. Stellen Sie nach dem Hinzufügen von Realm zum Projekt build.gradle sicher, dass Ihre App build.gradle-Datei wie folgt aussieht:

    apply plugin: 'com.android.application'  
    apply plugin: 'kotlin-android'  
    apply plugin: 'kotlin-android-extensions'  
    apply plugin: 'kotlin-kapt'  
    apply plugin: 'realm-android'  
    .  
    .  
    .  
    androidExtensions {  
    experimental = true
    }
  2. Verwenden Sie kaptstatt annotationProcessorin Ihrer App build.gradle-Abhängigkeiten.

  3. Gehen Sie zu Run -> Edit Configurations..und entfernen Sie die Instant App ProvisionOption.

  4. Führen Sie diesen Befehl im Terminal von Android Studio aus:

    gradlew assembleDebug  
  5. Es ist in Ordnung !

Hinweis: Wenn die Meldung "Gradle-Plug-Ins von Drittanbietern sind möglicherweise die Ursache" erneut angezeigt wird, führen Sie die Schritte 3 und 4 erneut aus.

Mehdi I.
quelle
0

Konfiguration bei Bedarf mit Gradle 4.6 und höher: Wenn Sie Android Gradle Plugin 3.0.x oder 3.1.x mit Gradle 4.6 und höher verwenden, sollten Sie die Konfiguration bei Bedarf deaktivieren, um unvorhersehbare Buildfehler zu vermeiden. (Wenn Sie das Android Gradle Plugin 3.2.0 oder höher verwenden, müssen Sie keine Maßnahmen ergreifen, um die Konfiguration bei Bedarf zu deaktivieren.)

Deaktivieren Sie die Konfiguration bei Bedarf in Ihrer gradle.properties-Datei wie folgt:

org.gradle.configureondemand = false Um die Konfiguration bei Bedarf in den Android Studio-Einstellungen zu deaktivieren, wählen Sie Datei> Einstellungen (Android Studio)

Einstellungen auf dem Mac), wählen Sie im linken Bereich die Kategorie Compiler aus und deaktivieren Sie das Kontrollkästchen Bei Bedarf konfigurieren.

In Android Studio 3.2 Beta 1 und höher wurden die Optionen zum Aktivieren der Konfiguration bei Bedarf entfernt. Bitte lesen Sie den Abschnitt über bekannte Probleme unter dem folgenden Link. Geben Sie hier die Linkbeschreibung ein

Android-Entwickler
quelle
0

Eigentlich war ich auch mit dem gleichen Fehler konfrontiert. Ich habe meine Kotlin-Version auf den neuesten Stand gebracht . Dies kann Ihr Problem lösen.

Maulik Togadiya
quelle
-4

Nun, ich fand es liegt an apply plugin: 'kotlin-kapt', Wenn Sie diese Zeile in build.gradle (App) löschen, werden Sie erfolgreich erstellen ...

Habe keine Ahnung warum dieses Plugin zu diesen Warnungen führt.

Newamber
quelle