为什么 BUTTON.setEnabled(true);如果 BUTTON 不为空,则会导致空指针异常



>I get

 Caused by: java.lang.NullPointerException
        at ente.testen.Testen.onCreate(Testen.java:210)

指向

            btnAendern.setEnabled(true);

    final Button btnAendern = (Button) findViewById(R.id.btnAendern);
    final Intent absicht = getIntent();
        if (absicht == null)
            btnAendern.setEnabled(false);
        else
            btnAendern.setEnabled(true);

Android Studio 1.0 不会显示R.id.btnAendern下划线,因此它确实找到了它。用

    if (btnAendern != null) {
        if (absicht == null)
            btnAendern.setEnabled(false);
        else
            btnAendern.setEnabled(true);
    }

仍然让我们安卓指向btnAendern.setEnabled(true);.

可能是什么原因造成的?

以下是完整的错误日志:

12-14 00:23:27.949  17965-17965/ente.testen E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: ente.testen, PID: 17965
    java.lang.RuntimeException: Unable to start activity ComponentInfo{ente.testen/ente.testen.testen}: java.lang.NullPointerException
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2198)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2257)
            at android.app.ActivityThread.access$800(ActivityThread.java:139)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5097)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
            at ente.testen.testen.onCreate(testen.java:210)
            at android.app.Activity.performCreate(Activity.java:5248)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1110)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2162)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2257)
            at android.app.ActivityThread.access$800(ActivityThread.java:139)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5097)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
            at dalvik.system.NativeStart.main(Native Method)

IDE 找到它并不意味着该按钮存在。 如果尚未设置内容视图,或者设置的内容视图没有该按钮,则仍返回 null。 其中之一是这种情况。

最新更新