gpt4 book ai didi

java - 如何捕获 Android Activity 的 block 异常?

转载 作者:行者123 更新时间:2023-11-30 01:05:14 24 4
gpt4 key购买 nike

public class MainActivity extends FragmentActivity {
TextView textView = (TextView) findViewById(R.id.textbox);

//rest of code.........

以上代码会产生以下异常,

    Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.Window.findViewById(int)' on a null object reference
at android.app.Activity.findViewById(Activity.java:2090)
at com.example.kuldeep.myapplication.MainActivity.<init> (MainActivity.java:24)

当我调试它时,我知道这段代码甚至在 onCreate() 方法之前执行。这怎么可能?以及如何捕获此类异常?

最佳答案

How is this possible?

因为那是你写的。字段初始值设定项(例如,(TextView) findViewById(R.id.textbox))在创建 Activity 实例时执行。

How to catch this type of exceptions?

你不知道。相反,您可以避免异常。通常,不要从字段初始值设定项调用从 Activity 继承的方法。更具体地说,在小部件存在之前您无法找到该小部件,并且在调用 setContentView()(或者您以其他方式设置此 Activity 的 UI)之前不会发生这种情况。

关于java - 如何捕获 Android Activity 的 <init> block 异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38925240/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com