Android Studio入门:调用startActivity跳转Activity时应用崩溃如何解决?
崩溃原因及修复方案
核心触发原因(按出现概率从高到低排序)
- 自定义User类未实现Serializable接口
你通过Intent传递Serializable类型的集合时,要求集合内存储的所有元素也必须支持序列化,否则系统在执行序列化操作时会直接抛出NotSerializableException导致应用崩溃。
修复方案:修改com.example.hw1511.Model.User类,实现java.io.Serializable接口:
import java.io.Serializable; public class User implements Serializable { // 原有属性、构造方法、getter/setter逻辑保持不变 private String name; private int age; private String birth; public User(String name, int age, String birth) { this.name = name; this.age = age; this.birth = birth; } // 原有其余代码无需改动 }
- SecondActivity未在AndroidManifest.xml中注册
Android要求所有Activity组件必须在项目的AndroidManifest.xml文件中声明才可被启动,未注册的Activity启动时会抛出ActivityNotFoundException导致崩溃。
修复方案:在AndroidManifest.xml的<application>标签内添加SecondActivity的声明:
<application <!-- 原有application配置保持不变 --> > <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> <!-- 新增SecondActivity声明 --> <activity android:name=".SecondActivity" android:exported="false" /> </application>
可选优化点
你当前代码中MainActivity implements Serializable的配置完全无用,Activity属于Android上下文组件,强行序列化会带来内存泄漏风险,建议直接删除该实现声明。
内容的提问来源于stack exchange,提问作者nnhjbxozqxs
相关产品推荐
相关产品推荐

