The application could not be installed: INSTALL_FALLED_INTERNAL_ERROR

本文解决了一个常见问题:华为手机无法运行apk,通过修改AndroidManifest.xml文件中的权限设置,成功解决了AndroidStudio连接真机运行时出现的'Installationdidnotsucceed'错误。

版权声明:本文为延成原创文章,转载请标明出处

问题复现

Installation did not succeed.
The application could not be installed: INSTALL_FALLED_INTERNAL_ERROR
Installation failed due to: ‘null’

华为手机无法运行apk,android studio 连接真机运行时报错。
在这里插入图片描述

问题解决


	<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE" />
    <uses-permission android:name="com.huawei.permission.sec.MDM" />

将AndroidManifest.xml中上面2行代码注释掉即可。
然后同步下工程,问题解决

### 问题分析 安装失败错误 `INSTALL_FAILED_ABORTED` 通常发生在 Android 应用安装过程中,由于某些系统限制或配置冲突导致安装流程被中断。当错误信息中提及 `com.squareup.leakcanary.internal.DisplayLeakActivity` 并提示“Targeting S+ (version 31 and above) requires that an explicit value for android:exported be defined when intent filters are present”时,说明该 Activity 在 `AndroidManifest.xml` 中未正确配置 `android:exported` 属性,而目标 SDK 版本为 Android 12(API 31)及以上。 从 Android 12 开始,所有带有 `intent-filter` 的组件必须显式声明 `android:exported` 属性,否则会导致构建失败或安装异常[^1]。这一限制旨在提升应用安全性,防止外部应用访问内部组件。 --- ### 解决方案 #### 1. 显式设置 `android:exported` 在 `AndroidManifest.xml` 文件中,找到 `DisplayLeakActivity` 的声明并添加 `android:exported="false"`,因为该 Activity 仅用于调试目的,并不需要暴露给其他应用: ```xml <activity android:name="com.squareup.leakcanary.internal.DisplayLeakActivity" android:exported="false"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="leakcanary" /> </intent-filter> </activity> ``` 此配置确保了组件符合 Android S+ 的安全要求,避免因未定义 `exported` 而引发安装失败。 #### 2. 检查安装过程中的用户限制 若同时出现 `INSTALL_FAILED_USER_RESTRICTED` 错误,则可能与设备的用户策略限制有关,例如设备管理员禁止安装未知来源的应用,或正在使用受限制的用户账户进行安装。可通过以下方式排查: - 确保开发者选项中的“USB调试”已启用。 - 检查是否启用了“允许通过 USB 安装应用”选项。 - 确保未启用“仅充电”模式,而是选择了“文件传输”或“MTP”模式。 #### 3. 避免调用 `abandonSession()` 导致安装中断 在部分自定义安装逻辑中,如果在安装过程中调用了 `getPackageManager().getPackageInstaller().abandonSession(mSessionId)`,则可能导致 `INSTALL_FAILED_ABORTED` 错误。应确保仅在确实需要取消安装会话时才调用该方法,避免在正常安装流程中提前终止安装会话[^3]。 --- ### 延伸建议 - 如果使用的是旧版本 LeakCanary(如引用[2]提到的 1.3.1 版本),建议升级到最新版本,以获得更好的兼容性支持和功能优化。 - 对于 React Native 项目,在构建和安装 APK 时,也应检查 `AndroidManifest.xml` 是否合并了所有依赖库的组件声明,并确保所有带 `intent-filter` 的 Activity 都设置了 `exported` 属性。 ---
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值