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官方打了电话之中都没解决,直到最后借到了一个可以复现问题的手机连数据线在控制台看到上面的日志,一行代码解决了问题。

相关推荐
雨白1 小时前
Jetpack系列(四):精通WorkManager,让后台任务不再失控
android·android jetpack
PHOSKEY2 小时前
闪测仪应用案例丨手机中框如何突破「尺寸检测」瓶颈?
运维·智能手机·自动化
mmoyula3 小时前
【RK3568 驱动开发:实现一个最基础的网络设备】
android·linux·驱动开发
sam.li4 小时前
WebView安全实现(一)
android·安全·webview
移动开发者1号5 小时前
Kotlin协程超时控制:深入理解withTimeout与withTimeoutOrNull
android·kotlin
程序员JerrySUN5 小时前
RK3588 Android SDK 实战全解析 —— 架构、原理与开发关键点
android·架构
移动开发者1号5 小时前
Java Phaser:分阶段任务控制的终极武器
android·kotlin
哲科软件14 小时前
跨平台开发的抉择:Flutter vs 原生安卓(Kotlin)的优劣对比与选型建议
android·flutter·kotlin
jyan_敬言20 小时前
【C++】string类(二)相关接口介绍及其使用
android·开发语言·c++·青少年编程·visual studio
程序员老刘21 小时前
Android 16开发者全解读
android·flutter·客户端