Ich habe die Android-P SDK-Umgebung erfolgreich konfiguriert. Wenn ich versuche, die Android Design Support Library zu verwenden, treten Fehler beim Erstellen von Projekten auf. Projektkonfigurationen sind:
IDE: 3.2 Canary 17 Ziel-API: 28 Kompilierungs-API: 28
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.app.navigationpoc"
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.0.0-alpha3'
implementation 'androidx.constraintlayout:constraintlayout:1.1.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha3'
implementation 'com.android.support:design:28.0.0-alpha3'
implementation 'com.android.support:cardview-v7:28.0.0-alpha3'
}
Und Build fehlgeschlagen Fehler ist:
Manifest-Fusion fehlgeschlagen: Attribut application @ appComponentFactory value = (androidx.core.app.CoreComponentFactory) von [androidx.core: core: 1.0.0-alpha3] AndroidManifest.xml: 22: 18-86 ist auch unter [com.android vorhanden .support: support-compatible: 28.0.0-alpha3] AndroidManifest.xml: 22: 18-91 value = (android.support.v4.app.CoreComponentFactory). Vorschlag: Fügen Sie 'tools: replace = "android: appComponentFactory"' zum Element unter AndroidManifest.xml hinzu: 6: 5-40: 19, um es zu überschreiben.
quelle
Antworten:
Sie können entweder die vorherige API-Paketversion von Artefakten oder das neue Androidx verwenden, niemals beides.
Wenn Sie die vorherige Version verwenden möchten, ersetzen Sie Ihre Abhängigkeiten durch
Wenn Sie Androidx verwenden möchten:
quelle
com
wurde das nichtmaterial
in der ersetztimplementation
?Wichtiges Update
Android aktualisiert die Support-Bibliotheken danach nicht mehr
28.0.0
.Verwenden Sie also die Bibliothek AndroidX .
androidx
oder eine beliebige Bibliothek, da Alpha, Beta, RC Fehler enthalten können, die Sie nicht mit Ihrer App versenden möchten.In deinem Fall
quelle
Füge das hinzu:
zu Ihrer Manifest-Anwendung
ich hoffe es hilft
quelle
@string/action_settings
drin* What went wrong: Execution failed for task ':app:generateDebugBuildConfig'. > org.xml.sax.SAXParseException; systemId: file:/C:/D/code/js/emps_app/android/app/src/main/AndroidManifest.xml; lineNumber: 14; columnNumber: 52; The prefix "tools" for attribute "tools:replace" associated with an element type "application" is not bound.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
Ich habe diese Option verwendet:
https://developer.android.com/jetpack/androidx/migrate
quelle
Google hat neue AndroidX- Abhängigkeiten eingeführt. Sie müssen auf AndroidX migrieren, es ist einfach.
Ich habe alle Abhängigkeiten durch AndroidX-Abhängigkeiten ersetzt
Sie finden AndroidX-Abhängigkeiten hier https://developer.android.com/jetpack/androidx/migrate
Automatische AndroidX-Migrationsoption (unterstützt von Android Studio 3.3+)
Migrieren Sie ein vorhandenes Projekt zur Verwendung von AndroidX, indem Sie in der Menüleiste Refactor> Zu AndroidX migrieren auswählen.
quelle
1.Fügen Sie diese Codes zu Ihrer App / build.gradle hinzu:
2.Modifizierte SDK- und Tools-Version auf 28:
2.In Ihrer AndroidManifest.xml-Datei sollten Sie zwei Zeilen hinzufügen:
Vielen Dank für die Antwort @Carlos Santiago: Android Design Support Library für API 28 (P) funktioniert nicht
quelle
Design Support Library für AndroidX ist
implementation 'com.google.android.material:material:1.0.0'
quelle
Öffnen Sie die Datei gradle.properties und fügen Sie diese beiden Zeilen hinzu:
reinigen und bauen
quelle
Hinweis: Sie sollten die Abhängigkeiten com.android.support und com.google.android.material nicht gleichzeitig in Ihrer App verwenden.
Fügen Sie Ihrer build.gradle (App) -Datei Materialkomponenten für Android hinzu
Wenn Ihre App derzeit von der ursprünglichen Design Support Library abhängt, können Sie die von Android Studio bereitgestellte Option Refactor to AndroidX… verwenden. Dadurch werden die Abhängigkeiten und der Code Ihrer App aktualisiert, um die neu gepackten Bibliotheken androidx und com.google.android.material zu verwenden.
Wenn Sie noch nicht auf die neuen Pakete androidx und com.google.android.material umsteigen möchten, können Sie Material Components über die Abhängigkeit com.android.support:design:28.0.0-alpha3 verwenden.
quelle
Zunächst sollten Sie gradle.properties betrachten und diese Werte müssen wahr sein . Wenn Sie sie nicht sehen können, müssen Sie schreiben.
Danach können Sie AndroidX-Abhängigkeiten in Ihrem build.gradle (Modul: App) verwenden . Außerdem müssen Sie compileSDKVersion und targetVersion überprüfen . Sie sollten mindestens 28 sein. Zum Beispiel verwende ich 29.
Ein Beispiel für eine Androidx-Abhängigkeit:
Sie müssen also sorgfältig suchen und lesen. Glücklicher Code.
@canerkaseler
quelle
Ich überquere diese Situation durch alle ersetzen
androidx.*
zuappropiate package name
.ändere deine Linie
zu
NOTED
tools:replace="android:appComponentFactory"
aus AndroidManifest entfernenquelle
Der folgende Code hat bei mir perfekt funktioniert:
quelle
Versuche dies:
quelle
Die Android-Dokumentation ist hierüber klar. Gehen Sie zur folgenden Seite. Darunter befinden sich zwei Spalten mit den Namen "OLD BUILD ARTIFACT" und "AndroidX Build Artefakt".
https://developer.android.com/jetpack/androidx/migrate
Jetzt haben Sie viele Abhängigkeiten in gradle. Passen Sie diese einfach an Androidx-Build-Artefakte an und ersetzen Sie sie im gradle.
Das wird nicht reichen.
Gehen Sie zu Ihrer MainActivity (wiederholen Sie dies für alle Aktivitäten) und entfernen Sie das Wort AppCompact Activity in der Anweisung "public class MainActivity erweitert AppCompatActivity" und schreiben Sie dasselbe Wort erneut. Diesmal wird jedoch die androidx-Bibliothek importiert. Bis jetzt wurde die appcompact-Unterstützungsdatei importiert und verwendet (entfernen Sie auch diese appcompact-Importanweisung).
Gehen Sie auch zu Ihrer Layoutdatei. Angenommen, Sie haben ein Einschränkungslayout, dann können Sie feststellen, dass das Einschränkungslayout für die erste Zeile in der XML-Datei etwas mit appcompact zu tun hat. Löschen Sie es einfach und schreiben Sie das Einschränkungslayout erneut. Jetzt wird jedoch das Androidx-bezogene Einschränkungslayout hinzugefügt.
Wiederholen Sie dies für so viele Aktivitäten und so viele XML-Layoutdateien.
Aber keine Sorge: Android Studio zeigt beim Kompilieren alle möglichen Fehler an.
quelle
Hatte ein ähnliches Problem. In build.gradle hinzugefügt und es hat bei mir funktioniert.
quelle
Wenn Sie dieses Problem lösen möchten, ohne auf AndroidX zu migrieren (ich empfehle es nicht)
Dieses offensichtliche Fusionsproblem hängt mit einer Ihrer Abhängigkeiten bei der Verwendung von androidX zusammen.
Sie müssen die Release-Version dieser Abhängigkeit verringern. für meinen Fall:
Ich habe Google oder Firebase verwendet
Ich muss es auf 15.0.1 reduzieren, um es in der Support-Bibliothek zu verwenden.
quelle
Hinzufügen
androidTestImplementation 'androidx.test:runner:1.2.0-alpha05'
funktioniert für mich.quelle