java - 运行应用程序时无法实例化 Activity

标签 java android json

由于上述错误,我在运行应用程序时遇到问题。当我单击“注册”按钮时,它崩溃了。在我尝试插入 JSON 代码(以连接到我的数据库)之前,它的行为并非如此。

我不太确定我的 JSON 代码是否导致任何错误和其他问题,因此我尝试在这里寻找解决方案,但无济于事。

这是我的 logcat 的一部分:

    05-06 01:11:36.270    1173-1173/com.powerfood2014.app I/Process﹕ Sending signal. PID: 1173 SIG: 9
    05-06 01:19:15.030    1227-1227/com.powerfood2014.app D/dalvikvm﹕ GC_FOR_ALLOC freed 74K, 5% free 3029K/3188K, paused 51ms, total 55ms
    05-06 01:19:15.040    1227-1227/com.powerfood2014.app I/dalvikvm-heap﹕ Grow heap (frag case) to 3.645MB for 635812-byte allocation
    05-06 01:19:15.090    1227-1236/com.powerfood2014.app D/dalvikvm﹕ GC_FOR_ALLOC freed 6K, 5% free 3643K/3812K, paused 49ms, total 49ms
    05-06 01:19:15.490    1227-1227/com.powerfood2014.app I/Choreographer﹕ Skipped 42 frames!  The application may be doing too much work on its main thread.
    05-06 01:19:15.540    1227-1227/com.powerfood2014.app D/gralloc_goldfish﹕ Emulator without GPU emulation detected.
    05-06 01:19:21.820    1227-1227/com.powerfood2014.app D/AndroidRuntime﹕ Shutting down VM
    05-06 01:19:21.820    1227-1227/com.powerfood2014.app W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0xb3ad7ba8)
    05-06 01:19:21.860    1227-1227/com.powerfood2014.app E/AndroidRuntime﹕ FATAL EXCEPTION: main    
    Process: com.powerfood2014.app, PID: 1227
        java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.powerfood2014.app/com.powerfood2014.app.Register}: java.lang.NullPointerException
                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2121)
                at android.app.ActivityThread.startActivityNow(ActivityThread.java:2035)
                at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:135)
                at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347)
                at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:749)
                at android.widget.TabHost.setCurrentTab(TabHost.java:413)
                at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:154)
                at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:546)
                at android.view.View.performClick(View.java:4438)
                at android.view.View$PerformClick.run(View.java:18422)
                at android.os.Handler.handleCallback(Handler.java:733)
                at android.os.Handler.dispatchMessage(Handler.java:95)
                at android.os.Looper.loop(Looper.java:136)
                at android.app.ActivityThread.main(ActivityThread.java:5017)
                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:779)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
                at dalvik.system.NativeStart.main(Native Method)
         Caused by: java.lang.NullPointerException
at android.app.Activity.findViewById(Activity.java:1884)
            at com.powerfood2014.app.Register.<init>(Register.java:162)
            at java.lang.Class.newInstanceImpl(Native Method)
            at java.lang.Class.newInstance(Class.java:1208)
            at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2112)
            at android.app.ActivityThread.startActivityNow(ActivityThread.java:2035)
            at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:135)
            at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347)
            at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:749)
            at android.widget.TabHost.setCurrentTab(TabHost.java:413)
            at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:154)
            at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:546)
            at android.view.View.performClick(View.java:4438)
            at android.view.View$PerformClick.run(View.java:18422)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            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:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)
05-06 01:19:27.660    1227-1227/com.powerfood2014.app I/Process﹕ Sending signal. PID: 1227 SIG: 9

最佳答案

Caused by: java.lang.NullPointerException
  at android.app.Activity.findViewById(Activity.java:1884) 
  at com.powerfood2014.app.Register.<init>(Register.java:162)

您正在调用 findViewById()初始化成员变量时太早 - <init>指对象初始化,例如构造函数和成员变量初始化。

移动findViewById()初始化为onCreate()所以它不会 NPE 和之后 setContentView()所以它有机会找到一些东西。

关于java - 运行应用程序时无法实例化 Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23487458/

相关文章:

找不到 Javascript 引擎 - 为 Java 平台编写脚本

java - Apache-poi:想要遍历Excel列并对下一列中存在的相应值求和

java - Android:从库运行用户指定的代码

android - 如何添加对 aar Android 库的依赖?

java - Spring Boot 与 MySql ManyToMany 关系无法持久保存到数据库,表示 "java.sql.SQLException: SQL String can not be NULL"

android - 安装后执行Android代码

java - FirebaseUI -Android 电子邮件链接登录不起作用

json - Tastypie如何在注入(inject)Post数据后获取自定义Json响应

php - 对外部站点的 file_get_contents 请求

java - 将 JSON Base64 字符串转换为 Java 中的 String