Failure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED] 问题所在及解决方法

Xamarin.Android 项目编译通过,但是在调试时,始终报错如下:

ADB0000:  Deployment failed
Mono.AndroidTools.InstallFailedException: Unexpected install output: 	pkg: /data/local/tmp/androidapp-Signed.apk
Failure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED]

清理,生成,重新生成。

最终再才百度后,突然发现,Android有个要求就是写入到AndroidManifest中注册Activity,必须要小写。C#一般没有这方面的要求。

所以最终问题原因就是 大小写的问题:

namespace AndroidAPP.wxapi
{

    [Activity(Name = "AndroidAPP.wxapi.WXEntryActivity", Label = "@string/app_name", Exported = true, LaunchMode = Android.Content.PM.LaunchMode.SingleTask, TaskAffinity = "AndroidAPP")]
    public class WXEntryActivity : Activity, IWXAPIEventHandler
    {

解决方法只需要修改Name的值为小写就可以了,代码如下:

namespace AndroidAPP.wxapi
{

    [Activity(Name = "androidapp.wxapi.WXEntryActivity", Label = "@string/app_name", Exported = true, LaunchMode = Android.Content.PM.LaunchMode.SingleTask, TaskAffinity = "AndroidAPP")]
    public class WXEntryActivity : Activity, IWXAPIEventHandler
    {

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
INSTALL_PARSE_FAILED_MANIFEST_MALFORMED是一个常见的安装错误,表示Android应用程序的清单文件(Manifest)存在格式错误。这可能是由于在清单文件中的行号59处存在问题。根据引用和引用的描述,此错误可能是由于在使用intent filters时未明确定义android:exported属性导致的。在引用中提到,目标版本为31及以上的设备要求在存在intent filters时必须明确定义android:exported属性的值。因此,解决问题方法之一是在清单文件中为相关的组件(如活动、服务、接收器)明确定义android:exported属性的值。 要解决这个问题,可以按照以下步骤进行操作: 1. 打开你的Android应用程序的清单文件(通常命名为AndroidManifest.xml)。 2. 寻找包含intent filters的组件(如活动、服务、接收器),这些组件可能导致了INSTALL_PARSE_FAILED_MANIFEST_MALFORMED错误。 3. 对于每个具有intent filters的组件,确保在其清单条目中明确定义了android:exported属性。根据引用中提到的,如果你的目标版本是31及以上,这是必需的。 4. 确保android:exported属性的值是明确的,可以是true或false,具体取决于你的应用程序的需求。如果你希望其他应用程序能够访问该组件,你可以将android:exported设置为true,否则设置为false。 5. 保存并重新编译你的应用程序,并尝试重新安装。 通过明确定义android:exported属性的值并确保清单文件的正确格式,你应该能够解决INSTALL_PARSE_FAILED_MANIFEST_MALFORMED错误。希望这些步骤对你有所帮助。如果问题仍然存在,请参考其他解决方案或提供更多的错误信息以便进一步帮助您解决问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值