You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将APK加入AOSP编译后在Android Studio模拟器中不可见的问题

解决APK加入AOSP编译后模拟器不显示的方案

先确认模块是否真的被编译到镜像里

  • 编译完成后,前往out/target/product/generic_x86/data/app/目录,查看是否存在MyApp文件夹或MyApp.apk,如果没有,说明模块未被正确打包:
    • 核对core.mk里的PRODUCT_PACKAGES,确保MyApp的大小写和模块名完全一致(AOSP模块名区分大小写)
    • 单独编译模块排查:执行make MyApp -j32,观察是否能生成对应文件。如果报错,大概率是APK文件名和LOCAL_SRC_FILES不匹配——你模块名是MyApp,但放入的是myApp.apk,大小写不一致导致编译时找不到文件,要么把APK重命名为MyApp.apk,要么修改LOCAL_SRC_FILES := myApp.apk

修正Android.mk的配置问题

  • 文件名大小写必须匹配:模块名和APK文件名的大小写要统一,否则编译时无法识别文件,自然不会打包进镜像
  • 调整安装路径:你当前将APK放在TARGET_OUT_DATA(对应data/app目录),属于用户级应用,系统首次启动可能不会自动触发安装。可以改为TARGET_OUT_APPS(对应/system/app目录),让它成为系统应用,系统启动时会自动扫描安装,修改后的配置如下:
    LOCAL_MODULE_PATH := $(TARGET_OUT_APPS)
    
  • 移除不必要的配置:LOCAL_UNINSTALLABLE_MODULE := true更适合系统应用,放在data目录的话可以先注释掉,避免潜在冲突

确保模拟器加载的是新编译的镜像

  • 不要使用旧镜像启动!可以通过命令指定新镜像:
    emulator -avd <你的AVD名称> -system out/target/product/generic_x86/system.img -data out/target/product/generic_x86/userdata.img
    
    或者前往Android Studio的AVD管理器,删除旧镜像后重新导入刚编译的system.img(路径为out/target/product/generic_x86/system.img)

检查应用是否真的安装,以及launcher图标配置

  • 启动模拟器后,用adb命令查询应用包名:
    adb shell pm list packages | grep <你的APK实际包名>
    
    注意这里是APK本身的包名,不是模块名MyApp
  • 如果找不到包名,回到编译步骤排查;如果能找到但launcher不显示,说明是APK本身的配置问题:检查它的AndroidManifest.xml里是否存在带有android.intent.category.LAUNCHER的Activity,没有的话launcher不会显示图标,必须添加类似以下的配置:
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    

内容的提问来源于stack exchange,提问作者Samarth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 20:33:12