La fusión de Manifest y Material de Android no se pudo realizar en react-native o ExpoKit




react-native-android (6)

  1. Intente actualizar a AndroidX ( Instruction ) y luego ejecute la npm update . Si algunos complementos no funcionan, descarte los cambios anteriores y vaya al segundo paso.

  2. Baja la versión del servicio de Google Play. En android/app/build.gradle cambiar

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

a

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

Así que en mi caso <sevice_name> era la location . Pero en el caso de alguien más, puede ser cualquier otro servicio de Google Play (como en la lista aquí http://www.androiddocs.com/google/play-services/setup.html ).

Así que se resolvió, pero el segundo paso es una solución temporal hasta que algunos complementos de RN se actualicen a AndroidX.

28.0.0 'android.support:appcompat-v7' a 28.0.0 .

Pero trajo un error de la compilación.

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.

Entonces me sale este error en mi Logcat:

Manifest merger failed

mi 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'
}

¿Cómo lo arreglo?

Necesito tus soluciones.

Gracias de antemano.


Agregue 'tools:replace="android:appComponentFactory"' en su etiqueta AndroidManifest.xml dentro de la etiqueta <application>

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


De acuerdo con @Frank's respuesta de @Frank's la biblioteca utilizó services-gcm:+ como una dependencia, y la última versión de gcm causó este problema.

Y había usado :react-native-admob en mi proyecto. Así que solo cambio las siguientes líneas en android/app/build.gradle

Desde:

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

A :

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

Después de pasar un día entero en este tema. Finalmente, he resuelto este problema.

Recibí ese error de la biblioteca react-native-device-info y react-native-fast-fast-image. Acabo de eliminar esa biblioteca del archivo package.json y luego instalo

"react-native-device-info": "^ 2.1.2", "react-native-fast-image": "^ 6.0.3" esta última versión

He usado la siguiente versión de Gradle

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

He usado la siguiente versión de propiedades

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

He usado las siguientes versiones

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


La causa principal está relacionada con la migración a Androidx , el servicio de Google Play actualizado a androidX. Gracias a MR03web Este problema pertenece a react-native-device-info? La mejor opción es actualizar react-native-device-info usando

yarn upgrade react-native-device-[email protected].1.2
cd android && gradlew clean
react-native run-android

o si no desea actualizar, debe excluir com.google.android.gms de la información de react-native-device-info like. Gracias

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




expo