如何修复INSTALL_PARSE_FAILED_MANIFEST_MALFORMED在我的Andr

2019-06-18 04:10发布

嗨,我试图用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

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

请指导,因为我在Android的海新的鱼类。

编辑1:我注意到,如果我评论这行下面,然后应用程序部署和执行,但很明显,我不能去直接使用,无需下文提到的许可......请帮助....

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

Answer 1:

用大写字母,以简单的字母改名包。



Answer 2:

更改

android:name="MainActivity"

android:name=".MainActivity"

或者你的类名前加上小写完全合格的包名

android:name="thepackage.MainActivity"

不要改变这一切命名为属性android:name里面activity ,我建议的标签。



Answer 3:

代替:

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

至:

<uses-permission android:name="android.permission.C2D_MESSAGE" android:protectionLevel="signature"/>

尝试。



Answer 4:

<activity android:name="MainActivity"

应该形成像

<activity android:name="com.company.appname" 

要做到这一点没有错误去打包(右键)>的Android工具>重命名的应用程序包



Answer 5:

试着写活动名称由跟随“” 代替

<activity android:name="MainActivity"
                  android:label="@string/app_name">

使用

<activity android:name=".MainActivity"
                  android:label="@string/app_name">


Answer 6:

我在Android Studio中遇到了同样的问题

什么解决这是为了让公司域为所有的小字母,



Answer 7:

有一个关于这个问题: http://code.google.com/p/android/issues/detail?id=37658大写字母不能在权限内包名称中使用。 当你已经部署了这样的包名应用程序,您需要使用GCM你有(像我一样)到困难的局面。 我试图用某种许可的短形式:

<permission android:name=".permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name=".permission.C2D_MESSAGE" />

我也以同样的方式定义的服务。 它必须在应用程序包。 它的工作在Android 4.3。 大概在4.2也。 我知道,在4.0.3它没有。



Answer 8:

确保你的包名是小写字母......为我工作



Answer 9:

编写Java包名称和小写的所有文件夹的名称,它会正常工作...



Answer 10:

在我来说,我提到只有小写字母包名。 但是,对于一些活动我与部分名称即把它命名为android:name=".ContactUs" 。 之后,我通过之前在清单文件中的所有活动名称,服务名称和广播商名称前缀完整的包名称解决它。

工作代码

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="vcan.doit.com">

<!-- To auto-complete the email text field in the login form with the user's emails -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/Theme.DesignDemo">
    <activity
        android:name="vcan.doit.com.LoginActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="vcan.doit.com.MainActivity"
        android:theme="@style/Theme.DesignDemo" />
    <activity
        android:name="vcan.doit.com.CheeseDetailActivity"
        android:parentActivityName="vcan.doit.com.MainActivity">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="vcan.doit.com.MainActivity" />
    </activity>

    <service android:name="vcan.doit.com.PushNotification.MyAndroidFirebaseMsgService">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>
    <service android:name="vcan.doit.com.PushNotification.MyAndroidFirebaseInstanceIdService">
        <intent-filter>
            <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
        </intent-filter>
    </service>

    <activity
        android:name="vcan.doit.com.AboutUs"
        android:label="@string/abt_us"
        android:parentActivityName="vcan.doit.com.MainActivity">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="vcan.doit.com.MainActivity" />
    </activity>
    <activity
        android:name="vcan.doit.com.ContactUs"
        android:label="@string/contact_us"
        android:parentActivityName="vcan.doit.com.MainActivity">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="vcan.doit.com.MainActivity" />
    </activity>
    <activity android:name="vcan.doit.com.WriteToUs"
        android:label="@string/write_us"
        android:parentActivityName="vcan.doit.com.MainActivity">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="vcan.doit.com.MainActivity" />
    </activity>
</application>



文章来源: How to fix INSTALL_PARSE_FAILED_MANIFEST_MALFORMED in my android application