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

如何修复context.startActivity(intent)引发的应用崩溃报错

问题原因

抛出android.content.ActivityNotFoundException的直接原因是:Android系统要求所有四大组件(包括Activity)必须在应用的AndroidManifest.xml清单文件中显式注册,系统才能找到并启动对应组件。你的日志已经明确指出,无法找到com.example.assignment1mypageambrish.Recipe这个Activity类,本质就是这个Activity没有完成清单注册。
另外你贴的点击事件代码里,new Intent(mContext, Recipe.class)行尾缺少分号,这是语法错误,编译阶段就会报错,注意补上。

修复步骤
  • 打开项目中app/manifests/路径下的AndroidManifest.xml文件
  • 在<application>标签内部,和其他已注册的Activity同级的位置,添加Recipe页面的注册声明,参考代码如下:
<!-- 省略application标签内已有的icon、theme等属性配置 -->
<application ...>
    <!-- 已有的主页面注册,一般自带intent-filter作为启动页 -->
    <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>

    <!-- 新增缺失的Recipe Activity注册 -->
    <activity
        android:name=".Recipe"
        android:exported="false" />
</application>
  • 特殊场景排查:如果添加注册后依然报错,检查两个问题:
    • 类路径匹配问题:如果Recipe类没有放在包根目录com.example.assignment1mypageambrish下,需要把android:name的路径补全,比如Recipe放在page子包下,就要写成android:name=".page.Recipe"
    • Context类型问题:你这段代码写在RecyclerView的Adapter里,如果传入的mContext是Application级别的Context,启动Activity时需要添加新任务栈标记,否则也会触发崩溃,修改后的点击代码参考:
    public void onClick(View v) {
        Intent intent = new Intent(mContext, Recipe.class);
        intent.putExtra("Name",mData.get(i).getRecipeName());
        intent.putExtra("Description",mData.get(i).getRecipeDescription());
        intent.putExtra("Duration",mData.get(i).getRecipeDuration());
        intent.putExtra("Method", mData.get(i).getRecipeMethod());
        intent.putExtra("Ingredients", mData.get(i).getRecipeIngredients());
        // Application Context启动Activity必须加这个flag
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        mContext.startActivity(intent);
    }
    

注意:如果是Android 12及以上版本,所有注册的Activity必须显式指定android:exported属性,否则编译会不通过,普通不需要被外部应用打开的页面设置为false即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 09:39:42