Android Studio - 应用程序已停止,但代码错误为0

时间:2017-08-13 13:22:33

标签: java android xml android-studio runtime-error

在我安装一些Android Studio更新之前,我的Android应用程序运行顺利,并在安装更新后让我升级gradle等。

稍后,Android Studio要求我更新我的Android模拟器(模拟器Nexus 5X API 24 Android v7.0),因为我已经进行了所有这些更改,当我点击运行时我的应用程序无法打开。但请记住,当我调试等时,它没有编码错误。

Android Monitor的错误消息是:

08-13 14:07:30.735 3889-3889/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.smartlegal.law.freeman.smartlegal, PID: 3889
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.smartlegal.law.freeman.smartlegal/com.smartlegal.law.freeman.smartlegal.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
        at android.app.ActivityThread.-wrap12(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6077)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
        at com.smartlegal.law.freeman.smartlegal.MainActivity.onCreate(MainActivity.java:39)
        at android.app.Activity.performCreate(Activity.java:6662)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) 
        at android.app.ActivityThread.-wrap12(ActivityThread.java) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:154) 
        at android.app.ActivityThread.main(ActivityThread.java:6077) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756) 
08-13 14:07:30.744 3889-3896/? W/art: Suspending all threads took: 5.874ms

2 个答案:

答案 0 :(得分:0)

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference

正如错误所述,您正在尝试在不存在的Button上设置onClickListener(返回null)。为简化起见,当您定义Button时,可以调用findViewById将Java中的Button与XML元素相关联,但是您传递的ID无效 - 要么您正在尝试在致电setOnClickListener之前致电setContentView,或者您传递给findViewById的ID有错字或者在XML布局文件中根本不存在。

更多信息(例如MainActivity的代码和布局文件)可用于确定问题的确切原因。

答案 1 :(得分:0)

是的,你是对的,我忘了指定editText和Button的ID,这就是为什么不能在XML上找到它们的ID。所以我已经设置好并重新加载了项目,现在它正在顺利运行。谢谢大家的支持。

"正如错误所述,您正在尝试在不存在的Button上设置onClickListener(返回null)。为了简化,当您定义Button时,可以调用findViewById将Java中的Button与XML元素相关联,但是您传递的ID无效。作者:Timothy Langer"。