如何在我的 Android 应用程序中修复 INSTALL_PARSE_FAILED_MANIFEST_MALFORMED

新手上路,请多包涵

您好,我正在尝试使用 gcm,但无法使其正常工作。不知道我在哪里搞砸了,下面是我得到的错误。我正在尝试直接在设备上部署我的应用程序并从那里进行调试,但是每当我尝试部署它时都会出现此错误

Waiting for device.
Target device: HT24LW108632
Uploading file
    local path: D:\Data\Android\AndroidTest\out\production\AndroidTest\AndroidTest.apk
    remote path: /data/local/tmp/Android.Test
Installing Android.Test
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/Android.Test"
pkg: /data/local/tmp/Android.Test
Failure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED]

AndroidManifest.xml

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="Android.Test"
          android:versionCode="1"
          android:versionName="1.0">
    <uses-sdk android:minSdkVersion="14"/>

    <permission
            android:name="Android.Test.permission.C2D_MESSAGE"
            android:protectionLevel="signature" />
    <uses-permission android:name="Android.Test.permission.C2D_MESSAGE" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

    <application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
        <activity android:name="MainActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <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="Android.Test" />
            </intent-filter>
        </receiver>
        <service android:name=".GCMIntentService" />
    </application>
</manifest>

我的设备是 HTC OneX

  • 安卓版本:4.03
  • HTC Sense 版本:4.0
  • 软件编号:1.29.110.11
  • HTC SDK API 级别:4.12
  • HTC 扩展版本:HTCExtension_403_1_GA_7

请指导,因为我是 Android Sea 中的新鱼。

Edit-1:我注意到,如果我在下面的行中发表评论,那么应用程序会部署并执行,但显然我不能在没有下面提到的许可的情况下继续前进……请帮忙……

 <permission android:name="Android.Test.permission.C2D_MESSAGE"  android:protectionLevel="signature" />

原文由 Shax 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 696
2 个回答

将带有大写字母的名称包更改为小写字母。

原文由 imperator_sp 发布,翻译遵循 CC BY-SA 3.0 许可协议

改变 你的

android:name="MainActivity"

android:name=".MainActivity"

或者 在你的类名之前添加小写的完全限定包名

android:name="thepackage.MainActivity"

请按照我的建议更改 activity 标签内名为 android:name 的所有属性。

原文由 Vishnuvathsan 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题