Ich habe die nächste Klasse
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0-rc01'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.google.android.material:material:1.0.0-rc01'
}
Aber wenn ich eine App erstellen möchte, erhalte ich das nächste Protokoll:
Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0-alpha3] AndroidManifest.xml:22:18-91
is also present at [androidx.core:core:1.0.0-alpha3] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:5:5-19:19 to override.
Okey! Gehen Sie zum Manifest und tun Sie es:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="ru.chopcode.myapplication">
<application
tools:replace="android:appComponentFactory"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
</application>
</manifest>
Dann bekomme ich diesen Fehler in meinem Logcat:
Manifest merger failed with multiple errors, see logs that I have Linked with it
Ändern Sie einfach "rc01" in der ersten und letzten Zeile innerhalb der Abhängigkeiten in "alpha1" Dies funktioniert bei mir
Entfernen Sie einfach die Abhängigkeit von android.support
implementation 'com.android.support:appcompat-v7:28.0.0-rc01'
Aus den Materialrichtlinien zitieren
Wenn Sie noch nicht auf die neuen Pakete androidx und com.google.android.material umsteigen wollen, können Sie Material Components über die Abhängigkeit com.android.support:design:28.0.0-alpha3 verwenden.
Hinweis: Sie sollten die Abhängigkeiten com.android.support und com.google.android.dependencies nicht gleichzeitig in Ihrer App verwenden.
Das Entfernen dieser Abhängigkeit funktioniert problemlos.
implementation 'com.android.support:appcompat-v7:28.0.0-rc01'
Hier ein vollständiges Beispiel für Abhängigkeiten
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.google.android.material:material:1.0.0-beta01'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
Erstellen Sie ein neues Projekt und vergleichen Sie Ihre build.gradle-Dateien und ersetzen Sie alle
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.1'
und andere Abhängigkeiten durch die gleichen, wie in einem neuen Projekt so etwas wie das
implementation 'androidx.appcompat:appcompat:1.0.0-alpha3'
implementation 'androidx.constraintlayout:constraintlayout:1.1.2'
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0-alpha1'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha3'
implementation 'androidx.core:core-ktx:1.0.0-alpha3'
Und dann feste Importe, um androidx in Kotlin-Dateien zu verwenden.