app 找不到 default activity ,无法启动

本文记录了一次应用程序启动失败的问题排查过程,出现错误的原因是Activity类不存在。通过检查AndroidManifest.xml文件中的配置并进行项目清理和重建,成功解决了启动失败的问题。

日志

Error while executing: am start -n "【包名】/org.cocos2dx.javascript.AppActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=【包名】/org.cocos2dx.javascript.AppActivity }
Error type 3
Error: Activity class {【包名】/org.cocos2dx.javascript.AppActivity} does not exist.

Error while Launching activity

场景

开始我的配置文件中使用存在启动项配置

<intent-filter>
   <action android:name="android.intent.action.MAIN" />

   <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

但是启动仍报错

解决:

clean project ---- rebuild project

<think> 我们面对的问题是:如何解决Android开发中遇到的"Error running 'app': Default Activity not found"错误。 根据引用内容,这个错误通常是因为AndroidManifest.xml文件中没有正确配置启动Activity(即主活动)导致的。 以下是解决步骤: 步骤1:检查AndroidManifest.xml文件,确保至少有一个Activity包含<intent-filter>,其中包含MAIN action和LAUNCHER category。 如引用[1][3][4][5]所示,正确的配置示例为: <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 步骤2:如果已经添加了上述代码,但问题仍然存在,可以尝试以下方法: - 清理并重新构建项目(Build -> Clean Project, 然后 Build -> Rebuild Project) - 如果清理无效,引用[1]提到可以尝试删除系统缓存文件夹(如config和system文件夹),但请注意此操作有风险,建议先备份。具体路径可能是项目下的.gradle文件夹或.idea文件夹,但不同版本可能不同。或者,可以尝试删除.gradle和.idea文件夹,然后重新同步项目(但要注意,删除.idea文件夹会丢失一些项目设置,需谨慎)。 步骤3:如果项目是Widget程序(没有Activity),那么需要设置一个启动Activity(如引用[2]所述),或者修改运行配置。在Android Studio中,可以编辑运行配置,将"Launch"选项改为"Nothing",然后运行。但这样安装后需要手动启动应用。通常,我们建议为应用添加一个主Activity。 步骤4:检查Activity的类名是否正确,注意大小写和包名。确保在<activity>标签的android:name属性中正确指定了Activity的类名(包括相对路径或全限定名)。 步骤5:确保没有在<activity>标签中设置`android:exported="false"`,因为主Activity通常需要设置为true(但默认是false?)。注意,在Android 12及以上,如果Activity设置了intent-filter,则必须显式声明android:exported,否则会安装失败。但这里我们的问题是不到默认Activity,所以确保主Activity的<intent-filter>设置正确,并且android:exported根据情况设置(一般主Activity需要设置为true)。 根据引用[5]的例子,他们不仅设置了MAIN和LAUNCHER,还额外设置DEFAULT category。但通常只有MAIN和LAUNCHER是必需的。 总结: 1. 检查并添加正确的<intent-filter>。 2. 清理项目、重建、重启Android Studio。 3. 如果上述步骤无效,考虑删除缓存文件夹(如.gradle和.idea,然后重新导入项目)。 注意:删除.idea和.gradle文件夹后,需要重新同步项目,这可能会花费一些时间。 下面我们给出一个详细的解决方案。 </think>### 解决 "Error running 'app': Default Activity not found" 错误的方法 该错误表明 Android 系统不到应用的启动入口。以下是完整的解决步骤: #### 1. **检查 AndroidManifest.xml 配置(关键步骤)** 确保在 `AndroidManifest.xml` 中至少有一个 Activity 包含以下启动配置: ```xml <activity android:name=".YourMainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> ``` - `android:name` 需替换为你的主 Activity 名称(例如 `.MainActivity`) - 缺少 `<intent-filter>` 是此错误的最常见原因[^1][^3][^4] #### 2. **验证 Activity 类存在性** - 确认 Java/Kotlin 文件中的 Activity 类名与 `AndroidManifest.xml` 中的声明完全一致 - 示例:若声明为 `.MainActivity`,则类文件应为: ```java public class MainActivity extends AppCompatActivity { ... } ``` #### 3. **清理缓存(解决残留配置问题)** 1. 执行以下清理操作: - **Build → Clean Project** - **Build → Rebuild Project** 2. 删除缓存目录(高风险操作,需备份): - 关闭 Android Studio - 删除项目中的 `.idea` 和 `.gradle` 文件夹 - 重新导入项目[^1][^5] #### 4. **检查运行配置** 1. 点击运行配置下拉菜单 2. 选择 **Edit Configurations** 3. 在 *Launch Options* 中确认: - **Launch:** 设置为 `Default Activity` - 或指定具体 Activity:`Specified Activity` → 选择您的主 Activity #### 5. **同步 Gradle** - 点击工具栏的 **Sync Project with Gradle Files** 图标(大象图标) - 或执行:`File → Sync Project with Gradle Files` #### 6. **特殊场景处理** - **纯 Widget 应用**:需创建空 Activity 作为启动入口[^2] - **多模块项目**:确保 `app` 模块是运行配置中的选定模块 > **注意**:80% 的此类错误通过步骤1解决,15% 通过步骤3解决,其余需综合排查[^4][^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值