Daljeet Dhaliwal
Daljeet Dhaliwal

Reputation: 253

Manifest merger failed with multiple errors, see logs

first of all i am new to Android, i have imported an eclipse project to android studio. On building project it is showing this error

"Error:Execution failed for task ':app:processDebugManifest'. > Manifest merger failed with multiple errors, see logs"

my code is as follows,

AndroidManifest.xml

 <?xml version="1.0" encoding="UTF-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.my.app" android:versionCode="3" android:versionName="1.2">
    <supports-screens android:resizeable="true" />
    <supports-screens android:smallScreens="true" />
    <supports-screens android:normalScreens="true" />
    <supports-screens android:largeScreens="true" />
    <supports-screens android:anyDensity="true" />
    <!-- Permission - Internet Connect -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- Network State Permissions -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!-- Allows the API to access Google web-based services. -->
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <!-- Allows the API to cache map tile data in the device's external storage area. -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!-- Keeps the processor from sleeping when a message is received. -->
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-feature android:glEsVersion="0x00020000" android:required="true" />


 <!--
        Creates a custom permission so only this app can receive its messages.
        NOTE: the permission *must* be called PACKAGE.permission.C2D_MESSAGE,
           where PACKAGE is the application's package name.
        -->
    <permission android:name="com.my.app.permission.C2D_MESSAGE" android:protectionLevel="signature" />
    <uses-permission android:name="com.my.app.permission.C2D_MESSAGE" />
    <!-- This app has permission to register and receive data message. -->
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <application android:name="com.my.app.util.HotelApp" android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@android:style/Theme.Black.NoTitleBar">
        <activity android:name="com.my.app.activity.SplashActivity" android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden|screenSize" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="com.my.app.activity.HomeActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden|screenSize" />
        <activity android:name="com.my.app.activity.CategoryActivity" android:screenOrientation="portrait" />
        <activity android:name="com.my.app.activity.ContactUSActivity" android:screenOrientation="portrait" />
        <activity android:name="com.my.app.activity.LeisuresActivity" android:screenOrientation="portrait" />
        <activity android:name="com.my.app.activity.LeisureActivity" android:screenOrientation="portrait" />
        <activity android:name="com.my.app.activity.PromosActivity" android:screenOrientation="portrait" />
        <activity android:name="com.my.app.activity.ReservationActivity" android:screenOrientation="portrait" />
        <activity android:name="com.my.app.activity.AboutUsActivity" android:screenOrientation="portrait" />
        <activity android:name="com.my.app.activity.ReservationContinueActivity" android:screenOrientation="portrait" />
        <activity android:name="com.my.app.activity.BookTableActivity" android:screenOrientation="portrait" />
        <activity android:name="com.my.app.activity.AccommodationsActivity" android:screenOrientation="portrait" />
        <activity android:name="com.my.app.activity.CorporatesActivity" android:screenOrientation="portrait" />
        <activity android:name="com.my.app.activity.GuestServicesActivity" android:screenOrientation="portrait" />
        <activity android:name="com.my.app.activity.PhotoGalleryActivity" android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden|screenSize" />
        <activity android:name="net.hockeyapp.android.UpdateActivity" android:screenOrientation="portrait" />
        <!--<meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="AIzaSyDAk_PM9Ce-z_9onkItz4aSahE1AGSBKDo" />-->
        <!--
          BroadcastReceiver that will receive intents from GCM
          services and handle them to the custom IntentService.

          The com.google.android.c2dm.permission.SEND permission is necessary
          so only GCM services can send data messages for the app.
        -->
        <receiver android:name="com.google.android.gcm.GCMBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND">
            <intent-filter>
                <!-- Receives the actual messages. -->
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <!-- Receives the registration id. -->
                <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
                <category android:name="com.my.app" />
            </intent-filter>
        </receiver>
        <!--
          Application-specific subclass of GCMBaseIntentService that will
          handle received messages.

          By default, it must be named .GCMIntentService, unless the
          application uses a custom BroadcastReceiver that redefines its name.
        -->
        <service android:name=".GCMIntentService" />
    </application>
</manifest>

and for build.gradle as follows

android {
compileSdkVersion 23
buildToolsVersion "24.0.2"

defaultConfig {
    applicationId "com.stgeorge.hotel"
    minSdkVersion 8
    targetSdkVersion 19
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    }
}

}

i have tried other solutions provided here on stack overflow but none worked

Upvotes: 23

Views: 79948

Answers (5)

Android Devoloper
Android Devoloper

Reputation: 11

add the line your build.gradle
implementation 'com.android.support:multidex:1.0.3'

Upvotes: 1

NoBugs
NoBugs

Reputation: 9496

Looks like this happens if you added a service - Android Studio automatically adds

<service
        android:name=".nameofyourclass"

and if you add another <service line of the type you wanted to make, that's a conflict. Check for duplicate service per file.

Upvotes: 0

Imtiaz Abir
Imtiaz Abir

Reputation: 741

I solved this issue by simply removing the empty/unused intent filter inside an activity tag in the manifest.

Upvotes: 4

Md Tariqul Islam
Md Tariqul Islam

Reputation: 2804

from manifest you can see the error log. check the image

enter image description here

Upvotes: 121

Swamy
Swamy

Reputation: 132

Remove sdk configuration from manifest file, in android studio we need to define in build.gradle only
and also change compileSdkVersion and buildToolVersion to your targeted sdk or change your target sdk to 23

Note:- compileSdkVersion and buildToolVersion should belongs to same API level

Upvotes: 5

Related Questions