Android Automotive模块启动报Default Activity not found如何修复
报错根因
这个报错由两个问题叠加导致:
AndroidAutoDemo.automotive是车载专属模块,Manifest中已经声明强制要求android.hardware.type.automotive车载硬件特性,你当前用的普通移动端模拟器不支持车载环境,本身就不符合模块的安装要求,会直接触发设备匹配失败。- 你贴出的Manifest文件里,
<application>节点下没有声明任何Activity组件,更没有配置带MAINaction和LAUNCHERcategory的默认启动入口,系统找不到可拉起的页面,自然会报Default Activity not found错误。
修复方法
按以下顺序操作即可解决:
- 更换运行目标设备
打开Android Studio的设备管理器,新建Android Automotive类型的模拟器,下载对应版本的车载系统镜像完成创建,后续运行automotive模块必须选择这个车载模拟器,不能使用普通手机/平板模拟器。 - 补全模块的启动Activity配置
先在automotive模块的对应包路径下新建启动Activity(比如命名为MainActivity),再修改模块的AndroidManifest.xml,在<application>标签内部添加Activity的声明和启动过滤器,补全后的配置参考:<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.androidautodemo"> <uses-feature android:name="android.hardware.type.automotive" android:required="true" /> <application android:allowBackup="true" android:appCategory="audio" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.AndroidAutoDemo"> <!-- 新增默认启动Activity配置 --> <activity android:name=".MainActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> - 校验运行配置
确认顶部运行配置下拉框选中的是AndroidAutoDemo.automotive模块,部署目标选择你刚创建的车载模拟器,点击运行即可正常启动。
补充说明:mobile和automotive是两个完全独立的模块,前者面向手机、平板等移动设备,后者仅面向搭载Android Automotive系统的车机设备,二者不能交叉部署到不匹配的设备上。
内容的提问来源于stack exchange,提问作者tail
相关产品推荐
相关产品推荐

