升级compileSdkVersion到33后安装报错INSTALL_PARSE_FAILED_MANIFEST_MALFORMED
解决升级compileSdkVersion到33后的INSTALL_PARSE_FAILED_MANIFEST_MALFORMED错误
问题出在LeakCanary库的内部Activity上,不是你自己编写的Activity。错误提示里的leakcanary.internal.activity.LeakLauncherActivity没有显式设置android:exported属性,而targetSdkVersion 31+(对应Android 12及以上)要求所有带有Intent Filter的Activity必须明确声明该属性。
给你两个可行的解决方案:
方案一:升级LeakCanary到最新版本
新版本的LeakCanary已经适配了Android 12+的要求,会自动给内部Activity加上android:exported属性。打开app模块下的build.gradle(或build.gradle.kts),更新LeakCanary的依赖版本:
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.12'
(注:可根据LeakCanary官方发布的版本号替换示例中的2.12,使用最新稳定版即可)
方案二:手动在Manifest中补充属性
如果暂时不想升级库,就在你的AndroidManifest.xml里手动给这个第三方Activity添加android:exported属性:
<activity android:name="leakcanary.internal.activity.LeakLauncherActivity" android:exported="false" tools:node="merge" />
android:exported="false":该Activity不需要被外部应用调用,设置为false即可tools:node="merge":确保该配置与库自带的Manifest配置合并,避免冲突
完成任意一种操作后,重新编译安装即可解决问题。
内容的提问来源于stack exchange,提问作者Moiz Travadi
相关产品推荐
相关产品推荐

