android एंड्रॉइड मटेरियल और एपकॉम मैनिफेस्ट विलय प्रतिक्रिया-मूल या एक्सपोजिट में विफल रहा




react-native react-native-android (7)

मैंने 'android.support:appcompat-v7' को 28.0.0 अपडेट किया।

लेकिन यह बिल्ड से एक त्रुटि लाया।

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.

फिर मुझे अपने Logcat में यह त्रुटि मिलती है:

Manifest merger failed

मेरे 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'
}

मैं इसे कैसे ठीक करूं?

मुझे आपके समाधान चाहिए।

पहले ही, आपका बहुत धन्यवाद।


मूल कारण Androidx से संबंधित माइग्रेशन है, Androidx लिए Google Play सेवा अपडेट की गई है MR03web के लिए धन्यवाद यह समस्या प्रतिक्रिया-मूल-डिवाइस-जानकारी की है? सबसे अच्छा विकल्प react-native-device-info का उपयोग करके अपग्रेड करना है

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

या यदि आप अपग्रेड नहीं करना चाहते हैं तो आपको com.google.android.gms को इस तरह react-native-device-info से बाहर करना चाहिए। धन्यवाद

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

पूरा दिन इस मुद्दे पर बिताने के बाद। अंत में, मैंने इस मुद्दे को हल कर दिया है।

मुझे वह त्रुटि प्रतिक्रिया-मूल-डिवाइस-सूचना और प्रतिक्रिया-मूल-फास्ट-इमेज लाइब्रेरी से मिली। मैं अभी उस लाइब्रेरी को package.json फ़ाइल से हटाता हूं और फिर इंस्टॉल करता हूं

"प्रतिक्रिया-मूल-उपकरण-जानकारी": "^ 2.1.2", "प्रतिक्रिया-मूल-तेज-छवि": "^ 6.0.3" नवीनतम संस्करण

मैंने नीचे दिए गए ग्रेडेल संस्करण का उपयोग किया है

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

मैंने नीचे गुण संस्करण का उपयोग किया है

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

मैंने नीचे दिए गए संस्करणों का उपयोग किया है

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

अपने AndroidManifest.xml <application> 'tools:replace="android:appComponentFactory"' <application> टैग 'tools:replace="android:appComponentFactory"' जोड़ें

आपका 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>


  1. AndroidX ( Instruction ) में अपग्रेड करने का प्रयास करें और फिर npm npm update चलाएं। यदि कुछ प्लगइन्स टूट गए हैं, तो पिछले परिवर्तनों को छोड़ दें और दूसरे चरण पर जाएं।

  2. Google Play सेवा संस्करण डाउनग्रेड करें। android/app/build.gradle परिवर्तन में

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

सेवा मेरे

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

इसलिए मेरे मामले में <sevice_name> location था। लेकिन किसी और के मामले में यह कोई अन्य Google Play सेवा हो सकती है (जैसे कि यहां सूची में http://www.androiddocs.com/google/play-services/setup.html )।

तो यह हल हो गया, लेकिन दूसरा चरण - एक अस्थायी निर्धारण है जब तक कि कुछ आरएन प्लगइन्स एंड्रॉइड एक्स पर अपडेट नहीं होंगे।


मुझे @MehulSolanki उत्तर का हवाला देकर अपनी खोज के माध्यम से एक समाधान मिला।

मैं जोड़ना

tools:replace="android:appComponentFactory"
android:appComponentFactory="whateverString"

AndroidManifest.xml पर मेरे

और com.android.tools.build:gradl अपडेट करें:

dependencies {
    classpath 'com.android.tools.build:gradle:3.2.1'
  }

और इसे अपने gradle.properties फ़ाइल में जोड़ें

android.useAndroidX=true
android.enableJetifier=true

त्रुटि: [TAG] चर '$ {animal.sniffer.version}' को हल करने में विफल

त्रुटि: [TAG] चर '$ {junit.version}' को हल करने में विफल

उपरोक्त त्रुटि के मामले में

  1. फ़ाइल -> अमान्य कैश / पुनरारंभ करें
  2. बिल्ड -> स्वच्छ परियोजना

त्रुटि: पैकेज android.support.annotation में त्रुटि मौजूद नहीं है: प्रतीक वर्ग Nullable नहीं मिल सकता है

उपरोक्त त्रुटि के मामले में

implementation 'androidx.annotation:annotation:1.1.0' जोड़ें implementation 'androidx.annotation:annotation:1.1.0'

परिवर्तन import android.support.annotation.Nullable; => androidx.annotation.Nullable;

परिवर्तन import android.support.annotation.NonNull; => androidx.annotation.NonNull;

संकलन संस्करण और लक्ष्य संस्करण 28 होना चाहिए


अपने gradle.properties में निम्न जोड़ें फिर स्वच्छ / पुनर्निर्माण करें

googlePlayServicesVersion=16.1.0
firebaseVersion=17.6.0

@Frank's जवाब के अनुसार पुस्तकालय ने services-gcm:+ उपयोग निर्भरता के रूप में किया, और नवीनतम जीसीएम संस्करण ने इस समस्या का कारण बना।

और मैंने उपयोग किया था :react-native-admob मेरी परियोजना में :react-native-admob । तो मैं अभी android/app/build.gradle में निम्न पंक्तियों को android/app/build.gradle

से:

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

सेवा मेरे :

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






expo