失败 INSTALL PARSE FAILED MANIFEST MALFORMED

Posted

技术标签:

【中文标题】失败 INSTALL PARSE FAILED MANIFEST MALFORMED【英文标题】:Failure INSTALL PARSE FAILED MANIFEST MALFORMED 【发布时间】:2016-05-06 07:23:01 【问题描述】:

我在安装应用程序时遇到了一个奇怪的问题。

当我编译我的项目时没有错误,但是当我尝试启动它时,

安装错误:INSTALL_PARSE_FAILED_MANIFEST_MALFORMED 错误。

我尝试了很多与安装错误相关的事情:INSTALL_PARSE_FAILED_MANIFEST_MALFORMED 错误并且也遵循该规则,但出现了问题。

<manifest
android:hardwareAccelerated="true"
android:versionCode="1"
android:versionName="0.0.1"
package="Work.Work"
xmlns:android="http://schemas.android.com/apk/res/android">
<supports-screens
    android:anyDensity="true"
    android:largeScreens="true"
    android:normalScreens="true"
    android:resizeable="true"
    android:smallScreens="true"
    android:xlargeScreens="true" />
<uses-permission android:name="android.permission.INTERNET" />
<application
    android:hardwareAccelerated="true"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:supportsRtl="true">
    <activity
        android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
        android:label="@string/activity_name"
        android:launchMode="singleTop"
        android:name="MainActivity"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.DeviceDefault.NoActionBar"
        android:windowSoftInputMode="adjustResize">
        <intent-filter android:label="@string/launcher_name">
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:exported="true"
        android:name="com.plugin.gcm.PushHandlerActivity" />

    <receiver
        android:name="com.plugin.gcm.CordovaGCMBroadcastReceiver"
        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="Work.Work" />
        </intent-filter>
    </receiver>
    <service android:name="com.plugin.gcm.GCMIntentService" />
    <activity
        android:exported="true"
        android:name="com.adobe.phonegap.push.PushHandlerActivity" />

    <receiver android:name="com.adobe.phonegap.push.BackgroundActionButtonHandler" />
    <receiver
        android:exported="true"
        android:name="com.google.android.gms.gcm.GcmReceiver"
        android:permission="com.google.android.c2dm.permission.SEND">
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <category android:name="$applicationId" />
        </intent-filter>
    </receiver>

    <service
        android:exported="false"
        android:name="com.adobe.phonegap.push.GCMIntentService">
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
        </intent-filter>
    </service>
    <service
        android:exported="false"
        android:name="com.adobe.phonegap.push.PushInstanceIDListenerService">
        <intent-filter>
            <action android:name="com.google.android.gms.iid.InstanceID" />
        </intent-filter>
    </service>
    <service
        android:exported="false"
        android:name="com.adobe.phonegap.push.RegistrationIntentService" />
</application>
<uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="23" />

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission
    android:name="Work.Work.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />
<!--<uses-permission android:name="Work.Work.permission.C2D_MESSAGE" />-->
<!--<uses-permission android:maxSdkVersion="18" android:name="android.permission.WRITE_EXTERNAL_STORAGE" />-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission
    android:name="$applicationId.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />
<!--<uses-permission android:name="$applicationId.permission.C2D_MESSAGE" />-->

【问题讨论】:

你的Package Name 是什么?它只包含package="Work"这个吗? 不,我会更改包名。@jaydroider 在下面查看我的答案。 我会检查但这条线有错误&lt;activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:screenOrientation="portrait" android:theme="@android:style/Theme.DeviceDefault.NoActionBar" android:windowSoftInputMode="adjustResize"&gt; &lt;intent-filter android:label="@string/launcher_name"&gt; &lt;action android:name="android.intent.action.MAIN" /&gt; &lt;category android:name="android.intent.category.LAUNCHER" /&gt; &lt;/intent-filter&gt; &lt;/activity&gt; 【参考方案1】:

我遇到了这个错误,因为我的包名中有这样的大写字母。

Com.Droider.packagename;

在我将其更改为类似以下内容后:

com.droider.packagename;

在您的情况下尝试将其更改为:

work.work;

编辑 1:

也可能是这个原因。

android:name="MainActivity"

把这个改成。

android:name=".MainActivity"

【讨论】:

我检查了所有像 com.droider.packagename 这样的小后者; 试试你的运气吧。我现在不能假设。这是我建议的这个错误的所有主要问题。主要是解决这个问题。 告诉我一件事,小写字母的包名称在清单中使用的所有地方都被替换了。 bcz 我注意到你已经使用了两次以上。所以检查一次 bhai。 在所有需要的地方更改并检查对吗?小写字母。 ok last but not list 尝试从清单中删除 support screens 部分。【参考方案2】:

只需检查所有

 android:name="..."

在你的清单中,看看你是否忘记在应该有它的名字的开头放一个点,主要是你的类的名字。

【讨论】:

【参考方案3】:
package="Work"

APK 清单 package 名称中必须至少包含一个 . 分隔符。例如:

package="work.work"

您可以阅读PackageParser source,了解使用INSTALL_PARSE_FAILED_MANIFEST_MALFORMED 可能导致安装失败的各种方式。

【讨论】:

这不是解决方案,我更改了包名称。 这是您遇到的一个问题。可能还有其他人。【参考方案4】:

在我的例子中,我把 ':' 放在 android:process 的值上

<service
        android:name=".Views.Views.services.MyService"
        android:process=":remote" />

对我有用

【讨论】:

【参考方案5】:

我遇到了同样的问题。 我创建了一个以大写字母开头的新包。它会导致同样的问题。检查您的所有包文件夹名称并确保全部使用小写字母

愉快的编码

【讨论】:

【参考方案6】:

就我而言 如果您已将活动更改为片段 然后从您的 androidmanifest.xml 文件中删除该活动名称

<activity
        android:name=".fragment_change_password"
        android:screenOrientation="portrait" />

从清单文件中删除这种类型的行

【讨论】:

【参考方案7】:

您的包名中有一个大写字母。尝试重构你的包,使所有的字母都是小写的。为此,在您项目的面板中,确保您处于 Android 视图模式,然后单击视图指示器右侧一点点的齿轮,然后确保未选中紧凑的空中间包。接下来,右键单击包含大写字母的包,然后选择重构 -> 重命名。将其更改为小写,仔细检查您的 AndroidManifest.xml 现在是否为小写,如果不是,请手动编辑它。

【讨论】:

【参考方案8】:

清单文件中的元数据标记将可用于每个 xml 资源文件。 如果该元数据没有 android:resource location ,就会出现这个问题。

例子:

   <meta-data android:name="com.google.android.actions"
   android:resource="@drawable/cellphone"/>

【讨论】:

请填写您的答案,因为这似乎缺少某些部分。【参考方案9】:

在我的情况下,我将 Application 类放在侧主包文件夹之外。

只需将应用程序类移动到根活动文件夹。

【讨论】:

以上是关于失败 INSTALL PARSE FAILED MANIFEST MALFORMED的主要内容,如果未能解决你的问题,请参考以下文章

我现在收到失败 [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED] 错误

失败 [INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION: 无法解析 /data/app/vmdl1686600827.tmp/base.apk: 损坏的 XML 二

什么是 INSTALL_PARSE_FAILED_NO_CERTIFICATES 错误?

安装错误:INSTALL_PARSE_FAILED_MANIFEST_MALFORMED?

INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES

INSTALL PARSE FAILED UNEXPECTED EXCEPTION 问题