Nach dem Update auf Android Studio 3.1 erhielt ich folgende Fehlermeldung:
Das Projekt funktioniert gut und das ist meistens nur eine Warnung, also meine Frage, was bedeutet die Warnung und wie kann ich sie loswerden?
Die relevanten Teile aus Gradle-Dateien:
Dies ist der build.gradle
meines Projekts
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 dies ist die build.gradle
-Datei 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'
}
}
}
Ich habe Android Studio neu gestartet und das Problem ist verschwunden.
Klicken Sie auf Datei -> Caches ungültig machen/Neustart
Jedes Mal, wenn ich die Gradle-Datei ändere, muss ich Android Studio neu starten, um das Problem zu beheben.
Sie können dies auch versuchen:
Neu bestellte Repositories an:
mavenCentral()
maven { url 'https://jitpack.io' }
google()
jcenter()
Diesen Ordner löschen: Benutzer ~/.gradle/caches und Löschen des appbuild-Ordners manuell, dann bereinigen und neu erstellen .
Was hat das Problem für mich behoben?
3.1.0
ändern 1.2.30
.4.4
geändert. 27.0.3
war und ich es in 27.0.3
ändern sollte. Daher habe ich auch das Ziel-SDK in 27
geändert. Ich habe dies zu meinem gradle.build hinzugefügt:
kapt {
generateStubs = true
}
Ich hoffe, es hilft
bei Android Studio v3.1.2 passieren 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
da dataBinding apply plugin: 'kotlin-kapt'
verwendet, also hinzufügen
kapt {
generateStubs = true
}
Hier sind einige Schritte, die ich befolgt habe. In meinem Fall ist das Problem behoben!
Plattformmodule für Android Mit der Aktualisierung der Funktion für experimentelle Multiplattformprojekte wird die Unterstützung für Android-Plattformmodule eingeführt. Diese Module sollten das entsprechende Plugin im Gradle-Build-Skript anwenden und können den gemeinsam genutzten Code aus einem gemeinsamen Modul 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 Annotationsverarbeitungstool von Kotlin, Verknüpfungen zu Speicherorten im ursprünglichen Kotlin-Code anstelle von generierten Java-Stubs anbieten, da Fehler während der Anmerkungsverarbeitung gemeldet werden. Sie können diese Funktion aktivieren, indem Sie dem Gradle-Build-Skript (build.gradle) diese Zeilen 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"
Reinige dein Projekt
Build und das war's!
Fügen Sie all dies hinzu, bereinigen Sie Ihr Projekt, bauen Sie und das ist es! :) Lass es mich wissen, wenn das funktioniert! (Wenn es nicht für Sie funktioniert, werde ich Ihnen mit einer anderen Lösung helfen.)
Weitere Informationen: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 du eine downVote gibst, erkläre warum
Was mir wirklich geholfen hat, ist dies hinzuzufügen
kapt {
generateStubs = true
}
in build.gradle
In meinem Fall konnte keine der oben genannten Lösungen mein Problem lösen. Ich verwendete die Version 1.2.50 Kotlin, ohne Instant Run zu erwähnen, und der Build erzeugte keine Dolchklassen. Daher finde ich diese Frage, die mein Problem anscheinend gelöst hat In meiner Situation ist dies ein Problem, das mit der neuen Kotlin-Version zusammenhängt. Daher habe ich auf Version 1.2.41 heruntergestuft und funktionierte einwandfrei .. __ Übrigens habe ich diesen Punkt nur verfolgt, weil ich den Bildschirm zum Umschalten der Ansicht beim Erstellen verwendet habe.
1: Wählen Sie die Umschaltansicht aus und erstellen Sie Ihr Projekt
2: Sie werden genau sehen können, was passiert ist
Stackoverflow-Frage: Kotlin 1.2.50 fragt nach baseFeatureInfoDir
Problem-Tracker: https://issuetracker.google.com/issues/110198434
Versuchen Sie, Instant Run aus den Einstellungen zu entfernen.
Es hat für mich funktioniert.
Hier sind einige Schritte, die ich befolgt habe, und das Problem wurde in meinem Fall behoben.
abhängigkeiten { Klassenpfad 'com.Android.tools.build:gradle :3.1.0' Klassenpfad "org.jetbrains.kotlin: kotlin-gradle-plugin: $ 1.2.31" }
Projekt reinigen.
Erstellen Sie schließlich das Projekt neu.
apply plugin: 'kotlin-kapt'
entfernenfüge mavenCentral()
in build.gradle hinzu:
allprojects {
repositories {
mavenCentral()
google()
jcenter() } }
Eigentlich war ich auch mit dem gleichen Fehler konfrontiert. Was ich getan habe, ist die Aktualisierung meiner Kotlin-Version auf das neueste . Dies kann Ihr Problem lösen.
Hinzufügen einer weiteren Antwort für diejenigen, dieInstant App Provision
nicht entfernen konnten, da sie immer wieder angezeigt werden.
Erstellen Sie das Projekt manuell: ./gradlew assembleDebug
Es ist ein Hotfix, aber es funktioniert (weil das Problem wahrscheinlich mit Android Studio zusammenhängt).
Ich hatte dieses Problem bei der Verwendung von Realm mit Kotlin in Android Studio.
Gehen Sie folgendermaßen vor, um das Problem zu lösen:
Stellen Sie nach dem Hinzufügen von Realm zu Projekt build.gradle sicher, dass Ihre App build.gradle -Datei folgendermaßen 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
}
Verwenden Sie kapt
anstelle von annotationProcessor
in den Abhängigkeiten Ihrer App build.gradle.
Gehen Sie zu Run -> Edit Configurations..
und entfernen Sie die Instant App Provision
-Option.
Führen Sie diesen Befehl im Terminal von Android Studio aus:
gradlew assembleDebug
Es ist in Ordnung !
Hinweis: Wenn die Meldung "Gradle-Plug-Ins von Drittanbietern kann die Ursache sein" erneut angezeigt wird, führen Sie die Schritte 3 und 4 erneut aus.
Dies geschieht, weil der Kapt-Anmerkungsprozessor dieses Verzeichnis zum Speichern der von Kotlin erzeugten Dateien verwendet. Android erkennt den Pfad derzeit nicht standardmäßig.
Konfiguration bei Bedarf mit Gradle 4.6 und höher: Wenn Sie .__ verwenden. Android Gradle Plugin 3.0.x oder 3.1.x mit Gradle 4.6 und höher, Sie sollte die Konfiguration bei Bedarf deaktivieren, um unvorhersehbare Vorgänge zu vermeiden Fehler aufbauen. (Wenn Sie Android Gradle Plugin 3.2.0 oder höher verwenden, müssen Sie Keine Maßnahmen zum Deaktivieren der Konfiguration auf Demand durchführen.)
Deaktivieren Sie die Konfiguration bei Bedarf in Ihrer Datei gradle.properties als unten gezeigt:
org.gradle.configureondemand = false Zum Deaktivieren der Konfiguration bei Bedarf Wählen Sie in den Android Studio-Einstellungen Datei> Einstellungen (Android Studio
Voreinstellungen auf dem Mac), wählen Sie die Compiler-Kategorie im linken Bereich aus und deaktivieren Sie das Kontrollkästchen Nach Bedarf konfigurieren.
In Android Studio 3.2 Beta 1 und höher werden die Optionen zum Aktivieren von Konfiguration bei Bedarf wurde entfernt . Bitte lesen Sie die bekannten Probleme unter dem folgenden Link . Linkbeschreibung hier eingeben
Hier ist ein Ansatz, wie ich dieses Problem für meinen Fall beheben kann:
Aktualisieren Sie zunächst Ihre Android-Gradle-Plugin-Version aus der Projekt-Buildle-Datei und aktualisieren Sie dann Ihre Gradle-Version aus den Gradle-Eigenschaften.
Aktualisieren Sie schließlich Ihre Kotlin-Version (obligatorisch) auf kotlin_version = '1.2.30' oder höher aus der Gradle-Datei des Projekts.
Versuchen Sie jetzt, Ihr Projekt zu bereinigen und zu erstellen. Das Problem sollte behoben werden. Jedes Mal nach dem Build wird das Problem erneut auftreten, wenn Sie es erneut erstellen.