【问题标题】:Android Studio - Application has stopped, but 0 code errorsAndroid Studio - 应用程序已停止,但出现 0 个代码错误
【发布时间】:2018-01-21 11:36:20
【问题描述】:

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

后来,Android Studio 要求我更新我的 Android 模拟器(Emulator 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

【问题讨论】:

  • 请提供minimal reproducible example。这将包括com.smartlegal.law.freeman.smartlegal.MainActivityonCreate() 的源代码,以及由该方法加载的任何布局资源。

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


【解决方案1】:
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 的代码和布局文件,将有助于确定问题的确切原因。

【讨论】:

  • 是的,你是对的,我忘记为editText 和Button 指定ID,这就是为什么无法在XML 上找到它们的ID。所以我已经设置并重新加载了项目,它现在运行顺利。感谢您的支持..
【解决方案2】:

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

“如错误所述,您尝试在不存在的 Button 上设置 onClickListener(返回 null)。为简化起见,在定义 Button 时,您调用 findViewById 将 Java 中的 Button 与一个 XML 元素,但您传递的 ID 无效。作者:Timothy Langer"。

【讨论】:

    猜你喜欢
    • 2012-06-12
    • 1970-01-01
    • 2017-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多