2016-05-06 84 views
3

我得到一个奇怪的问题,而安装应用程序。失败INSTALL PARSE失败清单的格式不正确

当我编译我的项目没有错误,但是当我试图推出其节目我,

安装错误: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" />--> 
+0

什么是你的'包Name'?它只包含'package =“Work”'这个? –

+0

不,我会更改包名称。@ jaydroider –

+0

请在下面检查我的答案。 –

回答

14

我是有这个错误,因为我喜欢这个我的包名称有大写字母。

Com.Droider.packagename; 

后,我已经把它改为类似:

com.droider.packagename; 

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

work.work; 

编辑1:

May be this causes also.

android:name="MainActivity" 

Change this to.

android:name=".MainActivity" 
+0

我检查所有小后者,如com.droider.packagename; –

+0

@MilanPatel是否适用于此? –

+0

没有bhai它不工作请参阅上面我的评论。 –

1
package="Work" 

APK表现package名称必须包含在其中至少一个.分离。例如:

package="work.work" 

可以读取PackageParser source了解各种方式安装可能会失败,INSTALL_PARSE_FAILED_MANIFEST_MALFORMED

+0

这不是一个解决方案,我改变软件包名称。 –

+0

这是你的一个问题。可能有其他人。 – laalto

0

只是检查所有

android:name="..." 
在您的清单

,看看你忘了把一个点的名称的开头应该有它,大多的名字你类。

在我的情况
0

,如果你改变了你的活动将其分解 然后从你的AndroidManifest.xml文件

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

删除该活动的名字从清单文件

0

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