使用Android Studio Arctic Fox构建的App无法在安卓设备运行
相关说明
该问题属于Android Studio Arctic Fox + AGP 7.0+ 跨大版本升级后的高频踩坑问题,已有大量开发者遇到过同类异常。
常见触发原因及修复方案
签名配置兼容性问题
Android Studio Arctic Fox默认配套的Android Gradle Plugin 7.0+版本,debug构建变体默认仅开启v2、v3签名方案,Android 6(API 23)及以下系统仅支持v1签名,缺少v1签名时会出现包体安装成功但系统无法识别应用组件的问题;同时JDK 11默认的签名算法与JDK 8存在差异,原有旧的debug.keystore生成的签名在JDK 11环境下可能出现系统校验失败。
修复方案:
在模块级build.gradle的android配置块中强制开启v1签名:android { signingConfigs { debug { // 同时开启v1、v2签名兼容高低版本系统 v1SigningEnabled true v2SigningEnabled true } } buildTypes { debug { signingConfig signingConfigs.debug } } }若配置后仍异常,删除本地用户目录下
.android/debug.keystore文件,重新构建项目让Android Studio自动生成适配JDK 11的新签名文件即可。Manifest合并规则变更导致入口配置丢失
AGP 7.0+对AndroidManifest.xml的合并逻辑做了调整,若项目依赖的Library模块存在同优先级的intent-filter配置,可能会覆盖主模块入口Activity的启动器配置,导致系统识别不到应用入口,点击旧图标就会提示「App未安装」。
修复方案:
查看合并后的最终Manifest文件(路径为app/build/intermediates/merged_manifest/debug/AndroidManifest.xml),确认入口Activity是否包含以下配置:<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>若配置丢失,在主模块的AndroidManifest.xml中给入口Activity显式添加上述intent-filter,同时给Library模块的同类型配置添加
tools:node="merge"属性避免冲突。调试运行配置失效
Android Studio跨大版本升级后,原有运行/调试配置会被重置,未指定启动的Activity就会出现调试时不会自动拉起应用的问题。
修复方案:
点击顶部工具栏运行配置下拉框,选择「Edit Configurations」,找到对应app模块的配置项,在「General」标签的「Launch」选项中选择「Default Activity」或者手动指定应用的入口Activity,保存后重新运行即可。设备残留同包名旧应用冲突
新旧应用签名不一致时,新包会静默安装失败但残留旧包入口,点击后提示未安装。
修复方案:
执行adb命令彻底卸载旧包:adb uninstall 你的应用包名,或者在设备设置的应用列表中找到对应应用完成卸载,之后重新安装新构建的debug包。
内容的提问来源于stack exchange,提问作者LXJ

