android.util.SuperNotCalledException: Activity xxx did not call through to super.onConfigura

这篇博客讨论了在Android开发中重写onConfigurationChanged方法时的一个常见错误。开发者如果删除了super.onConfigurationChanged(newConfig)会导致配置更改不被正确处理。保留这行代码确保配置更新能够正常传播到父类,防止应用程序出现意外行为。

出现这个错误的原因是因为重写onConfigurationChanged()方法的时候 删掉了super.onConfigurationChanged(newConfig);

public void onConfigurationChanged(@NonNull Configuration newConfig) { super.onConfigurationChanged(newConfig) // 一定不要删除

}

这段日志是一个 Android 应用程序的崩溃日志,关键错误信息如下: ``` android.util.SuperNotCalledException: Activity did not call through to super.onCreate() ``` ### 错误原因: 这个异常表明某个 `Activity`(活动)在重写 `onCreate()` 方法时,**没有调用 `super.onCreate()`**。这是 Android 框架强制要求的。 在 Android 中,当您继承 `Activity` 或其子类(如 `AppCompatActivity`)并重写生命周期方法(如 `onCreate()`)时,**必须调用 `super.onCreate(savedInstanceState)`** 来确保父类的初始化逻辑得以执行。如果省略这一步,就会抛出 `SuperNotCalledException`。 ### 具体分析: - 出现问题的 Activity 是: ``` com.tplink.omada.sdncontroller.ui.settings.PeerDetailActivity ``` - 崩溃发生在启动该 Activity 的过程中。 - 错误堆栈显示崩溃发生在 `ActivityThread.performLaunchActivity()`,说明系统正在尝试创建这个 Activity。 - 实际原因:`PeerDetailActivity` 的 `onCreate()` 方法中**没有调用 `super.onCreate(savedInstanceState)`**。 ### 示例错误代码: ```kotlin class PeerDetailActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { // 错误:遗漏了 super.onCreate(savedInstanceState) setContentView(R.layout.activity_peer_detail) } } ``` ### 正确写法: ```kotlin class PeerDetailActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // ✅ 必须调用父类的 onCreate setContentView(R.layout.activity_peer_detail) } } ``` ### 总结: 这是一个典型的 Android 生命周期方法未调用 `super` 导致的崩溃。解决方法是确保在 `onCreate()` 中调用 `super.onCreate(savedInstanceState)`,并且该调用应放在 `setContentView()` 之前。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值