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

Android中StartActivity跳转ItemInfoActivity后显示空白页问题

问题分析与解决:启动Activity后空白且日志不输出

问题场景

AndroidManifest.xml中配置的Activity代码:

<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>
    <meta-data
        android:name="android.app.lib_name"
        android:value="" />
</activity>

<activity android:name=".ItemInfoActivity">
</activity>

Fragment中启动ItemInfoActivity的代码:

val intent = Intent(requireContext(),ItemInfoActivity::class.java)
Log.d("ItemLookupFragment","itemId = $itemId")
startActivity(intent)

ItemInfoActivity的实现代码:

class ItemInfoActivity: AppCompatActivity() {

    private lateinit var binding : ActivityItemInfoBinding

    override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
        Log.d("ItemInfoActivity","onCreate")
        super.onCreate(savedInstanceState, persistentState)
        binding = ActivityItemInfoBinding.inflate(layoutInflater)
        setContentView(binding.root)
        setSupportActionBar(binding.toolbar)
    }
}

点击按钮后跳转至空白页面,Fragment日志正常打印,Profiler显示当前运行的是ItemInfoActivity,但Activity内日志未输出,仅出现Expecting binder but got null!日志。

问题原因

你重写了错误的onCreate重载方法。系统启动Activity时默认调用的是仅接收Bundle?参数的onCreate方法,而你实现的是带PersistableBundle?参数的重载版本,这个方法不会被普通启动流程触发,因此Activity的初始化代码(绑定布局、打印日志等)完全没有执行,导致页面空白且无日志输出。

修复方案

将ItemInfoActivity的onCreate替换为标准的单参数版本:

class ItemInfoActivity: AppCompatActivity() {

    private lateinit var binding : ActivityItemInfoBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        Log.d("ItemInfoActivity","onCreate")
        super.onCreate(savedInstanceState)
        binding = ActivityItemInfoBinding.inflate(layoutInflater)
        setContentView(binding.root)
        setSupportActionBar(binding.toolbar)
    }
}

额外说明

带PersistableBundle的onCreate重载需要在Manifest中给Activity配置android:persistableMode="persistAcrossReboots",且仅在系统重启后恢复Activity的特定场景下才会被调用,普通启动Activity时不会触发该方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 11:27:23