INSTALL_PARSE_FAILED_MANIFEST_MALFORMED 解决

在写Android 测试程序的时候,安装Apk突然遇到 Failure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED] 这个错误。

这个错误的意思是AndroidManifest.xml这个文件有问题。




    
        
            
                

                
            
        
        
        
    


我的 AndroidManifest.xml 就这点代码,当时一脸懵逼。错误信息也没说我的Manifest哪行出错了,首先我怀疑是依赖库中的Manifest文件和我的Manifest在合并的时候发生了冲突。

为了验证我的想法我把所有的第三方依赖都去掉了,只留系统的依赖。然而依然无法安装。当时一度怀疑是AS的问题。

后来发现我的Main2Activity这个Activity设置了 android:process="activity2"这个属性。改了一下process的名字android:process=".activity2 加了一个.,于是顺利安装成功了!

原来导致这个错误的原因是process命名不规范!!!

截取谷歌官方对 android:process 这个属性的解释

INSTALL_PARSE_FAILED_MANIFEST_MALFORMED 解决_第1张图片
image.png

应在其中运行 Activity 的进程的名称。正常情况下,应用的所有组件都在为应用创建的默认进程名称内运行,您无需使用该属性。 但在必要时,您可以使用该属性替换默认进程名称,以便让应用组件散布到多个进程中。 如果为该属性分配的名称以冒号(“:”)开头,则会在需要时创建应用专用的新进程,并且 Activity 会在该进程中运行。如果进程名称以小写字符开头,Activity 将在该名称的全局进程中运行,前提是它拥有相应的权限。这可以让不同应用中的组件共享一个进程,从而减少资源占用。
这个解释并没有说我原来的命名是不规范的!!!坑啊~!

最后还是总结一下android:process的命名规则吧

  1. 不能以数字开头;
  2. 冒号(“:”)只能用于开头;
  3. 不以冒号(“:”)开头必须含有"." ;
  4. 不能含有特殊字符。

大概就在这样了吧。

当然,发生[INSTALL_PARSE_FAILED_MANIFEST_MALFORMED] 这个错误也可能是其他原因引起的,所以需要大家静下心来查找原因,总会找到的。

你可能感兴趣的:(INSTALL_PARSE_FAILED_MANIFEST_MALFORMED 解决)