'Manifest merger failed with multiple errors Android studio React native

Hi i am a new reactnative developer and i cant start my new poject in android sttudio i get always the same error here are some pictures.

enter image description here

This is mine AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="me.fuelllc.app">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    
    <uses-permission android:name="android.permission.ACCESS_COURSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <uses-permission android:name="android.permission.CAMERA"/>

    <!-- This is for remote notifications via FCB -->
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

    <application
      android:name=".MainApplication"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:allowBackup="false"
      android:largeHeap="true"
      android:theme="@style/AppTheme"
      >
      <!-- android:requestLegacyExternalStorage="true" -->
<!--
<provider
    android:name="androidx.core.content.FileProvider"
    android:authorities="me.fuelllc.app.provider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/freshchat_file_provider_paths" />
</provider>
-->
      
      <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
        android:launchMode="singleTask"
        android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
      </activity>
      <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
        <meta-data
          android:name="com.google.android.geo.API_KEY"
          android:value="AIzaSyDA8N6I65HqZnmolSsmL7xEBv24B1UcO-A"/>          

        <!-- FACEBOOK LOGIN -->
        <meta-data android:name="com.facebook.sdk.ApplicationId" 
          android:value="@string/facebook_app_id"/>
    
        <activity android:name="com.facebook.FacebookActivity"
            android:configChanges=
            "keyboard|keyboardHidden|screenLayout|screenSize|orientation"
            android:label="@string/app_name" />
        <activity
            android:name="com.facebook.CustomTabActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="@string/fb_login_protocol_scheme" />
            </intent-filter>
        </activity>

        <meta-data  android:name="com.dieam.reactnativepushnotification.notification_foreground"
                    android:value="true"/>

        <meta-data  android:name="com.dieam.reactnativepushnotification.notification_channel_name"
                    android:value="YOUR NOTIFICATION CHANNEL NAME"/>
        <meta-data  android:name="com.dieam.reactnativepushnotification.notification_channel_description"
                    android:value="YOUR NOTIFICATION CHANNEL DESCRIPTION"/>
        <!-- Change the resource name to your App's accent color - or any other color you want -->
        <meta-data  android:name="com.dieam.reactnativepushnotification.notification_color"
                    android:resource="@android:color/white"/>

        <!-- NOTIFICATIONS START -->
        <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationPublisher" />
        <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationBootEventReceiver">
          <intent-filter>
              <action android:name="android.intent.action.BOOT_COMPLETED" />
          </intent-filter>
        </receiver>
        <service android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationRegistrationService"/>

        <service
            android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationListenerService"
            android:exported="false" >
            <intent-filter>
              <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
        </service>
        <!-- NOFITICATIONS END -->

    </application>

    <queries>
      <intent>
        <action android:name="android.intent.action.VIEW" />
        <!-- If you don't know the MIME type in advance, set "mimeType" to "*/*". -->
        <data android:mimeType="application/pdf" />
      </intent>
    </queries>

</manifest>

i tryed to put this but it didnt work so i dont know what to do anymore

tools:replace="android:allowBackup"

//Add this in the manifest tag at the top

xmlns:tools="http://schemas.android.com/tools" I tryedd everything could find to solve it if someone has the same problem please help thank you!



Solution 1:[1]

I've built the project without errors. Permission ACCESS_COURSE_LOCATION is wrongly spelled in the manifest, it should be ACCESS_COARSE_LOCATION (COURSE->COARSE). I also added dummy activities, services and receivers to replace yours. Moreover, some activities and services require the attribute android:exported="true".

The complete error-free manifest that I used is as follows:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="me.fuelllc.app">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <uses-permission android:name="android.permission.CAMERA"/>

    <!-- This is for remote notifications via FCB -->
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

    <application
        android:name=".MainApplication"
        android:label="@string/app_name"
        android:icon="@mipmap/ic_launcher"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:allowBackup="false"
        android:largeHeap="true"
        android:theme="@style/AppTheme"
        >
        <!-- android:requestLegacyExternalStorage="true" -->
        <!--
        <provider
            android:name="androidx.core.content.FileProvider"
            android:authorities="me.fuelllc.app.provider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/freshchat_file_provider_paths" />
        </provider>
        -->

        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
            android:launchMode="singleTask"
            android:exported="true"
            android:windowSoftInputMode="adjustResize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".Activity1" />
        <meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="AIzaSyDA8N6I65HqZnmolSsmL7xEBv24B1UcO-A"/>

        <!-- FACEBOOK LOGIN -->
        <meta-data android:name="com.facebook.sdk.ApplicationId"
            android:value="@string/facebook_app_id"/>

        <activity android:name=".Activity2"
            android:configChanges=
                "keyboard|keyboardHidden|screenLayout|screenSize|orientation"
            android:label="@string/app_name" />
        <activity
            android:name=".Activity3"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="@string/fb_login_protocol_scheme" />
            </intent-filter>
        </activity>

        <meta-data  android:name="com.dieam.reactnativepushnotification.notification_foreground"
            android:value="true"/>

        <meta-data  android:name="com.dieam.reactnativepushnotification.notification_channel_name"
            android:value="YOUR NOTIFICATION CHANNEL NAME"/>
        <meta-data  android:name="com.dieam.reactnativepushnotification.notification_channel_description"
            android:value="YOUR NOTIFICATION CHANNEL DESCRIPTION"/>
        <!-- Change the resource name to your App's accent color - or any other color you want -->
        <meta-data  android:name="com.dieam.reactnativepushnotification.notification_color"
            android:resource="@android:color/white"/>

        <!-- NOTIFICATIONS START -->
        <receiver android:name=".Receiver1" />
        <receiver android:name=".Receiver2"
            android:exported="true" >
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receiver>
        <service android:name=".Service1"/>

        <service
            android:name=".Service2"
            android:exported="false" >
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
        </service>
        <!-- NOFITICATIONS END -->

    </application>

    <queries>
        <intent>
            <action android:name="android.intent.action.VIEW" />
            <!-- If you don't know the MIME type in advance, set "mimeType" to "*/*". -->
            <data android:mimeType="application/pdf" />
        </intent>
    </queries>

</manifest>

Note that the manifest compiler verifies that included classes: activities, services, etc. inherit the required base classes. Therefore, problems with implementation may generate errors in the manifest.

You may consider reproducing my result to sort out the real manifest errors. For that purpose I include examples of classes I used. I built a dummy app using Android Studio Bubmblebee 2021.1.1 with empty activity, using your package name. Then I copied your manifest and made the changes mentioned above. I also added two strings and renamed the style, to meet the name in your manifest. Then the compilation went through.

public class MainApplication extends Application { }

public class Activity1 extends Activity { }

public class Service1 extends Service {
    @Override
    public IBinder onBind(Intent intent) { return null; }
}

public class Receiver1 extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent){ }
}

An additional improvement is to define the string in <data android:scheme="@string/fb_login_protocol_scheme" /> directly in the manifest, without using @string, because it causes a warning.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1