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

安卓4.0下intent.putExtra()引发应用崩溃,求解决方法

解决Android 4.0启动带putExtra的Activity崩溃问题

这种SIGSEGV at 0xdeadd00d的崩溃在Android 4.x系统上特别常见,尤其是通过Intent传递自定义对象的时候。我帮你梳理几个最可能的原因和对应的解决办法:

1. 自定义对象的序列化实现有问题

你传递的Site对象如果是用Serializable或Parcelable实现的,Android 4.0对这两种序列化方式的兼容性要求更严格:

  • 如果是Serializable:
    • 必须显式声明serialVersionUID,否则系统自动生成的UID在不同版本可能不匹配,导致反序列化崩溃。
    • 确保Site里的所有成员变量要么是基本类型,要么也实现了Serializable;如果有不需要序列化的变量,要加transient关键字。
      示例代码:
    public class Site implements Serializable {
        // 一定要显式定义这个UID
        private static final long serialVersionUID = 123456789L;
        private String siteName;
        private int siteId;
        // 如果有Bitmap这类非Serializable对象,加transient
        private transient Bitmap siteIcon;
        // 构造方法、getter/setter...
    }
    
  • 如果是Parcelable:
    • 必须保证writeToParcel和createFromParcel中的字段读写顺序完全一致,比如先写字符串就先读字符串,先写int就先读int。
    • 检查CREATOR是否正确实现,尤其是newArray方法不能返回null。

2. Intent传递的对象体积过大

Android 4.0对Intent中携带的数据大小有严格限制,如果Site对象里包含大体积内容(比如高清Bitmap、超长字符串),很容易触发内存异常导致VM abort。

解决办法:不要通过Intent传递大对象,改用这些方式:

  • 用Application类存储临时对象:
    // 自定义Application类
    public class MyApp extends Application {
        private Site tempSite;
        public Site getTempSite() { return tempSite; }
        public void setTempSite(Site site) { this.tempSite = site; }
    }
    
    启动前先存对象:
    ((MyApp) getApplication()).setTempSite(yourSiteObject);
    Intent intent = new Intent(MainActivity.this, SiteActivity.class);
    startActivity(intent);
    
    目标Activity中获取:
    Site site = ((MyApp) getApplication()).getTempSite();
    // 用完后记得置空,避免内存泄漏
    ((MyApp) getApplication()).setTempSite(null);
    
  • 或者用单例类、本地数据库临时存储等方式传递数据。

3. 硬件加速设置无效的问题

你设置的android:hardwareAccelerated="false"可能没生效——要确保是在目标Activity的标签里设置,而不是全局Application标签。不过从报错来看,这次崩溃大概率和硬件加速无关,优先排查前两个问题。

快速调试技巧

  • 先简化Intent:暂时去掉putExtra,直接启动SiteActivity,如果能正常启动,100%是对象传递的问题。
  • 逐步精简Site对象:去掉非必要的成员变量,一步步测试,定位到导致崩溃的具体字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:02:28