【问题标题】:Malformed Android Manifest格式错误的 Android 清单
【发布时间】:2016-05-20 04:11:49
【问题描述】:

谁能告诉我为什么我的 AndroidManifest.xml 格式不正确? 尝试在我的设备上运行应用程序时出现此错误: 失败 [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 文件:

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

出于隐私考虑,我省略了地图元数据值

【问题讨论】:

  • 也许您应该反编译 APK 并检查清单并将其与您的本地清单进行比较并检查是否有差异。
  • 我已经比较了旧的和新的,看起来一样,问题是我已经搬到 Android Studio 所以我不确定我的 Gradle 文件是否与它有关
  • 在安装您的 apk 时在 logcat 中查找 W/PackageParser 以查找导致错误的原因。
  • 搜索了我的 LogCat,找不到任何与 PackageParser 相关的文本;(
  • 检查这个答案是否有帮助stackoverflow.com/a/25646008/2686502

标签: android xml android-manifest


【解决方案1】:

你可以尝试一件事 从清单文件中删除类别,然后尝试安装

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

【讨论】:

  • 没有工作:(仍然有同样的错误:失败[INSTALL_PARSE_FAILED_MANIFEST_MALFORMED]
猜你喜欢
  • 2014-06-29
  • 2018-03-20
  • 2019-07-24
  • 2012-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-06
相关资源
最近更新 更多