0

Can someone tell me why my AndroidManifest.xml is malformed? I am getting this error when trying to run the app on my device : Failure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED]

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.au.testapp"
    android:versionCode="2"
    android:versionName="2.002" >

    <!-- USES PERMISSIONS -->
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.BROADCAST_STICKY" />
    <uses-permission android:name="com.au.testapp.permission.MAPS_RECEIVE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.WRITE_SMS" />
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.SEND_SMS" />
    <uses-permission android:name="android.permission.RECEIVE_MMS" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.FLASHLIGHT" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />

    <!-- PERMISSIONS -->
    <permission android:name="com.au.testapp.permission.MAPS_RECEIVE" android:protectionLevel="signature" />
    <permission android:name="com.au.testapp.permission.C2D_MESSAGE" android:protectionLevel="signature" />

    <!-- SDK VERISONS -->
    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="21" />

    <!-- USES FEATURES -->
    <uses-feature android:glEsVersion="0x00020000" android:required="true" />
    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.location" android:required="true" />
    <uses-feature android:name="android.hardware.location.gps" android:required="false" />

    <!-- SCREEN SUPPORT -->
    <supports-screens
        android:anyDensity="true"
        android:largeScreens="true"
        android:normalScreens="true"
        android:resizeable="true"
        android:smallScreens="true"
        android:xlargeScreens="true" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:largeHeap="true"
        android:theme="@style/TitleBarTheme"
        android:name=".AnalyticsApplication">

        <!-- ACTIVITIES -->
        <activity
            android:name="com.au.testapp.SplashScreen"
            android:configChanges="navigation|screenLayout|uiMode|orientation|screenSize|layoutDirection"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.NoTitleBar" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.au.testapp.MainActivity"
            android:configChanges="navigation|screenLayout|uiMode|orientation|screenSize|layoutDirection|keyboard"
            android:windowSoftInputMode="stateHidden" />
        <activity
            android:name="com.au.testapp.VideoCaptureActivity"
            android:configChanges="navigation|screenLayout|uiMode|orientation|screenSize|layoutDirection"
            android:theme="@android:style/Theme.NoTitleBar"
            android:windowSoftInputMode="adjustResize" />
        <activity
            android:name="com.au.testapp.PhotoCaptureActivity"
            android:configChanges="navigation|screenLayout|uiMode|orientation|screenSize|layoutDirection"
            android:theme="@android:style/Theme.NoTitleBar"
            android:windowSoftInputMode="adjustResize" />
        <activity
            android:name="com.au.testapp.VerifyActivity"
            android:configChanges="navigation|screenLayout|uiMode|orientation|screenSize|layoutDirection|keyboard"
            android:theme="@android:style/Theme.NoTitleBar"
            android:windowSoftInputMode="adjustResize" />
        <activity
            android:name="com.au.testapp.dialog.DialogMapTypeActivity"
            android:configChanges="navigation|screenLayout|uiMode|orientation|screenSize|layoutDirection|keyboard"
            android:theme="@android:style/Theme.Dialog"
            android:windowSoftInputMode="adjustResize" />
        <activity
            android:name="com.au.testapp.dialog.DialogRadarTimesActivity"
            android:configChanges="navigation|screenLayout|uiMode|orientation|screenSize|layoutDirection|keyboard"
            android:theme="@android:style/Theme.Dialog"
            android:windowSoftInputMode="adjustResize" />
        <activity
            android:name="com.crittercism.NotificationActivity" />

        <!-- USES LIBRARIES -->
        <uses-library android:name="com.google.android.maps" />

        <!-- SERVICES -->
        <service android:name="com.au.testapp.BackgroundLocationService"   />
        <service android:name="com.au.testapp.GCMIntentService" />
        <service android:name="com.google.android.gms.analytics.CampaignTrackingService" /> 

        <!-- RECEIVERS -->
        <receiver
            android:name="com.google.android.gcm.GCMBroadcastReceiver"
            android:permission="com.google.android.c2dm.permission.SEND" >

            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
                <category android:name="com.au.testapp" />
            </intent-filter>
        </receiver>

        <receiver android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"
            android:exported="true">
            <intent-filter>
                <action android:name="com.android.vending.INSTALL_REFERRER" />
            </intent-filter>
        </receiver>

        <!-- META DATA -->
        <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="" />
        <meta-data android:name="com.google.android.gms.analytics.globalConfigResource" />
        <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> 

    </application>
</manifest>

Gradle File :

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0'
        classpath 'com.google.gms:google-services:2.1.0'
    }
}
apply plugin: 'android'

repositories {
    mavenCentral()
    maven { url "http://jzaccone.github.io/SlidingMenu-aar" }
}

dependencies {
    compile 'com.nineoldandroids:library:2.4.0'
    compile 'com.android.support:support-v4:23.0.1'
    compile 'com.jeremyfeinstein.slidingmenu:library:1.3@aar'
    compile 'com.google.android.gms:play-services:8.4.0'
    compile fileTree(dir: 'libs', include: '*.jar')
}

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"
    useLibrary  'org.apache.http.legacy'

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 23
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        instrumentTest.setRoot('tests')
    }
}

I left out the Maps meta-data value for privacy

Nickmccomb
  • 1,467
  • 3
  • 19
  • 34
  • perhaps you should should decompile the APK and check the manifest and compare it to your local one and check if there is a difference. – JoxTraex May 20 '16 at 04:33
  • I've compared the old one with the new, it looks the same, problem is i've moved to Android studio so i'm not sure if my Gradle file has something to do with it – Nickmccomb May 20 '16 at 04:41
  • 1
    Look for W/PackageParser in the logcat when installing your apk to find whats causing the error. – jayeshsolanki93 May 20 '16 at 04:41
  • Searched my LogCat, can't find any text relating to PackageParser ;( – Nickmccomb May 20 '16 at 04:47
  • try this answer: http://stackoverflow.com/a/25329580/3467204 – WannaBeGeek May 20 '16 at 04:58
  • Nah that didn't work @WannaBeGeek – Nickmccomb May 20 '16 at 05:21
  • 1
    check this answer if it helps http://stackoverflow.com/a/25646008/2686502 – jayeshsolanki93 May 20 '16 at 05:35
  • Thanks @jayeshsolanki93 , ended up finding the W/PackageManager. For some reason when you search for it in LogCat it doesn't find it, but it is there! W/PackageManager: Failed parse during installPackageLI android.content.pm.PackageParser$PackageParserException: /data/app/vmdl1759615828.tmp/base.apk (at Binary XML file line #159): requires an android:value or android:resource attribute – Nickmccomb May 20 '16 at 05:51
  • @Nickmccomb I am glad it helped :) – jayeshsolanki93 May 20 '16 at 07:27

1 Answers1

0

You can try one thing remove the category from your manifest file and then try to install

 <category android:name="com.au.testapp" />

       <Intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <action android:name="com.google.android.c2dm.intent.REGISTRATION"                 />
            <category android:name="com.au.testapp" />
        </intent-filter>
Sunil Soni
  • 443
  • 3
  • 18