android - xde - react native tutorial




Die Fusion von Android-Material und AppCompat-Manifest schlug in Reaction-Native oder ExpoKit fehl (6)

Ich habe 'android.support:appcompat-v7' auf 28.0.0 aktualisiert.

Aber es brachte einen Fehler aus dem Build.

Attribute [email protected] value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91

    is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).

    Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:8:5-23:19 to override.

Dann bekomme ich diesen Fehler in meinem Logcat:

Manifest merger failed

meine app.gradle:

  configurations.all {
    resolutionStrategy.force 'com.android.support:design:28.0.0'
    resolutionStrategy.force "com.android.support:support-v4:28.0.0"
    resolutionStrategy.force "com.android.support:support-media-compat:28.0.0"
  }
...
dependencies {
  implementation 'com.android.support:multidex:1.0.1'

  // Our dependencies
  implementation 'com.android.support:appcompat-v7:28.0.0'


  implementation 'com.android.support:appcompat-v7:28.0.0'
}

Wie behebe ich das?

Ich brauche deine Lösungen.

Danke im Voraus.


  1. Versuchen Sie, auf AndroidX ( Instruction ) zu aktualisieren, und führen Sie dann npm update . Wenn einige Plugins defekt sind, verwerfen Sie vorherige Änderungen und fahren Sie mit dem zweiten Schritt fort.

  2. Herabstufen der Google Play-Dienstversion. In android/app/build.gradle ändern

compile 'com.google.android.gms:play-services-<service_name>:+'

zu

compile 'com.google.android.gms:play-services-<service_name>:16.0.0'

In meinem Fall war <Dienstname> also der location . In einem anderen Fall kann es sich jedoch auch um einen anderen Google Play-Dienst handeln (siehe Liste hier http://www.androiddocs.com/google/play-services/setup.html ).

So ist es gelöst, aber der zweite Schritt - ist ein temporärer Fix, bis einige RN-Plugins auf AndroidX aktualisiert werden.



Fügen Sie 'tools:replace="android:appComponentFactory"' in Ihr AndroidManifest.xml im Tag <application>

Ihre AmdroidManifest.xml

<?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>


Fügen Sie Folgendes zu Ihren gradle.properties hinzu und bereinigen / erstellen Sie es neu

googlePlayServicesVersion=16.1.0
firebaseVersion=17.6.0

Laut @Frank's Antwort verwendete die Bibliothek services-gcm:+ als Abhängigkeit, und die neueste gcm-Version verursachte dieses Problem.

Und ich hatte in meinem Projekt :react-native-admob . Also ändere ich einfach die folgenden Zeilen in android/app/build.gradle

Von:

implementation project(':react-native-admob')

TO:

implementation(project(":react-native-admob"),  {
        exclude group: "com.google.android.gms"
})
implementation "com.google.android.gms:play-services-ads:16.0.0"

Nachdem ich einen ganzen Tag mit diesem Thema verbracht habe. Schließlich habe ich dieses Problem behoben.

Ich habe diesen Fehler durch react-native-device-info und eine react-native-fast-image-Bibliothek erhalten. Ich entferne gerade diese Bibliothek von package.json Akte und bringe dann an

"react-native-device-info": "^ 2.1.2", "react-native-fast-image": "^ 6.0.3" diese neueste version

Ich habe unten gradle Version verwendet

classpath 'com.android.tools.build:gradle:3.3.1'

Ich habe unter Eigenschaften Version verwendet

distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip

Ich habe folgende Versionen verwendet

buildToolsVersion = "28.0.3"
minSdkVersion = 16
compileSdkVersion = 28
targetSdkVersion = 28
supportLibVersion = "28.0.0"




expo