由于上述错误,我在运行应用程序时遇到问题。当我单击“注册”按钮时,它崩溃了。在我尝试插入 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/