oppo手机安装APK失败报错:安装包异常

如果你的apk文件在oppo手机安装失败了,像这样:

先说我们当时解决方式:

  1. 如果还没上架应用市场的测试包,在上面图一中需要关闭"超级守护",类似华为的纯净模式。
  2. 如果开启了还还不行,安装页面的报错太笼统不好定位问题,如果有测试机和安卓开发环境一定要看控制台日志,这里会给出比较详细的报错信息: adb: failed to install jianping.apk: Failure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED: Failed parse during installPackageLI: /data/app/vmdl154983124.tmp/base.apk (at Binary XML file line #21): com.xxx.activity.SplashActivity: Targeting S+ (version 31 and above) requires that an explicit value for android:exported be defined when intent filters are present]

错误信息INSTALL_PARSE_FAILED_MANIFEST_MALFORMED是因为APK的AndroidManifest.xml文件中,com.xxx.activity.SplashActivity未定义android:exported属性值,新建项目默认是没有设置这个属性的,而该属性在Android 12(API 31)及以上版本中若包含intent-filter的Activity必须显式声明给一个boolean值否则就会crash。

<activity

android:name="com.xxx.activity.SplashActivity"

android:exported="true">

<intent-filter>

<action></action>

</intent-filter>

</activity>

这里主要是因为入口的启动页没有设置exported属性,导致的安装失败。这个值true表示允许其他应用启动这个Activity,false则是不允许。我们这个是launcher Activity因此设置了true,如果false也可以但会发现通过Android Studio启动时只会给你安装好了但不会启动我们的app,需要手动点一下桌面图标。

  1. 我们当时因为开发人员没有oppo测试机而客户又没有开发环境,所以困扰了很久。

还尝试了了‌开启未知来源安装权限 ‌,在手机的 设置 > 安全与隐私 > 安装外部来源应用」,选择对应应用(如浏览器或文件管理器)并授权允许安装权限。也给oppo官方打了电话之中都没解决,直到最后借到了一个可以复现问题的手机连数据线在控制台看到上面的日志,一行代码解决了问题。

相关推荐
用户2018792831671 小时前
通俗易懂的讲解:Android系统启动全流程与Launcher诞生记
android
二流小码农2 小时前
鸿蒙开发:资讯项目实战之项目框架设计
android·ios·harmonyos
用户2018792831673 小时前
WMS 的核心成员和窗口添加过程
android
用户2018792831673 小时前
PMS 创建之“软件包管理超级工厂”的建设
android
用户2018792831673 小时前
通俗易懂的讲解:Android APK 解析的故事
android
渣渣_Maxz3 小时前
使用 antlr 打造 Android 动态逻辑判断能力
android·设计模式
Android研究员3 小时前
HarmonyOS实战:List拖拽位置交换的多种实现方式
android·ios·harmonyos
guiyanakaung4 小时前
一篇文章让你学会 Compose Multiplatform 推荐的桌面应用打包工具 Conveyor
android·windows·macos
恋猫de小郭4 小时前
Flutter 应该如何实现 iOS 26 的 Liquid Glass ,它为什么很难?
android·前端·flutter
葱段4 小时前
【Compose】Android Compose 监听TextField粘贴事件
android·kotlin·jetbrains