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

从Jetpack Compose Activity跳转至XML Activity时应用崩溃求助

解决Compose Activity跳转XML Activity触发SIG:9崩溃问题

SIG:9对应SIGKILL,是系统强制终止进程的信号,常见原因包括组件配置错误、内存不足、ANR或权限问题,按以下步骤排查:

  • 检查XML Activity的清单配置
    确认目标Activity已在AndroidManifest.xml中正确注册,Android 12及以上版本需注意exported属性:

    <activity
        android:name=".XmlActivity"
        android:exported="false" /> <!-- 仅内部跳转设为false;需外部启动则设为true -->
    

    避免包名、类名拼写错误,不要引用不存在的主题或资源。

  • 验证跳转代码正确性
    Compose中需确保使用正确的上下文和Intent构造:

    // 在Composable函数中获取上下文
    val context = LocalContext.current
    Button(onClick = {
        val intent = Intent(context, XmlActivity::class.java)
        context.startActivity(intent)
    }) {
        Text("跳转到XML Activity")
    }
    

    多模块项目需确认导入了正确的Activity类,避免跨模块类名混淆。

  • 排查内存溢出(OOM)
    用Android Studio Profiler监测内存:

    • 跳转前若内存已接近阈值,检查Compose页面是否有未释放的大资源(比如未回收的位图、未取消的协程)。
    • 检查XML Activity的onCreate中是否加载了超大资源,这类操作会瞬间耗尽内存触发系统杀进程。
  • 排查ANR问题
    查看Logcat中的ANR日志(搜索ANR in),若跳转时主线程执行了耗时操作(同步数据库查询、网络请求),需移至子线程:

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_xml)
        // 耗时操作移至子线程
        lifecycleScope.launch(Dispatchers.IO) {
            // 执行数据库查询或网络请求
        }
    }
    
  • 清理构建缓存并重建
    执行Build -> Clean Project和Build -> Rebuild Project,同时清除应用本地数据,排除构建缓存或旧数据导致的异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 04:22:42