【问题标题】:Eclipse Error: Unable to instantiate activityEclipse 错误:无法实例化活动
【发布时间】:2012-01-04 06:18:25
【问题描述】:

我试图运行我的应用程序,但它在到达 onCreate() 方法之前就崩溃了。我是 android 和 eclipse 的新手,所以我什至不知道从哪里开始搜索错误。

这就是 LogCat 的错误信息表单:

 11-22 21:06:59.787: WARN/dalvikvm(433): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
    11-22 21:07:01.468: ERROR/AndroidRuntime(433): FATAL EXCEPTION: main
    11-22 21:07:01.468: ERROR/AndroidRuntime(433): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.app/com.example.app.HelloActivity}: java.lang.NullPointerException
    11-22 21:07:01.468: ERROR/AndroidRuntime(433):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
    11-22 21:07:01.468: ERROR/AndroidRuntime(433):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
    11-22 21:07:01.468: ERROR/AndroidRuntime(433):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
    11-22 21:07:01.468: ERROR/AndroidRuntime(433):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
    11-22 21:07:01.468: ERROR/AndroidRuntime(433):     at android.os.Handler.dispatchMessage(Handler.java:99)
    11-22 21:07:01.468: ERROR/AndroidRuntime(433):     at android.os.Looper.loop(Looper.java:123)
    11-22 21:07:01.468: ERROR/AndroidRuntime(433):     at android.app.ActivityThread.main(ActivityThread.java:4627)
    11-22 21:07:01.468: ERROR/AndroidRuntime(433):     at java.lang.reflect.Method.invokeNative(Native Method)
    11-22 21:07:01.468: ERROR/AndroidRuntime(433):     at java.lang.reflect.Method.invoke(Method.java:521)
    11-22 21:07:01.468: ERROR/AndroidRuntime(433):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
    11-22 21:07:01.468: ERROR/AndroidRuntime(433):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
    11-22 21:07:01.468: ERROR/AndroidRuntime(433):     at dalvik.system.NativeStart.main(Native Method)
    11-22 21:07:01.468: ERROR/AndroidRuntime(433): Caused by: java.lang.NullPointerException
    11-22 21:07:01.468: ERROR/AndroidRuntime(433):     at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:146)
    11-22 21:07:01.468: ERROR/AndroidRuntime(433):     at com.example.app.HelloActivity.<init>(HelloActivity.java:51)
    11-22 21:07:01.468: ERROR/AndroidRuntime(433):     at java.lang.Class.newInstanceImpl(Native Method)
    11-22 21:07:01.468: ERROR/AndroidRuntime(433):     at java.lang.Class.newInstance(Class.java:1429)
    11-22 21:07:01.468: ERROR/AndroidRuntime(433):     at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
    11-22 21:07:01.468: ERROR/AndroidRuntime(433):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
    11-22 21:07:01.468: ERROR/AndroidRuntime(433):     ... 11 more

【问题讨论】:

  • 嗯...你在第 51 行的 HelloActivity 中有一个空指针异常,所以我建议看那里。
  • 如果您仍然感到困惑,请编辑您的问题以包含 HelloActivity 的代码。
  • 是的,该行实际上告诉您的是异常的行号:在 com.example.app.HelloActivity.(HelloActivity.java:51) 表示第 51 行,有些内容为空.

标签: android eclipse android-activity fatal-error


【解决方案1】:

从我可以从 logcat 中说的(代码将有助于使这一点更加清晰),您在构造函数中写了一些东西。

这是不好的做法,除非你确切地知道你在做什么(但我认为你的只是第一次犯错误;))。 您应该尽一切努力在重写的 onCreate 方法中初始化您的应用程序。 尽量不要创建任何构造函数,并在 onCreate 方法中移动所有内容。

记住,activity没有main函数,你不能给它们传递参数(有special classes在activity之间传递数据)

编辑: 现在我在你的 logcat 上看起来更好了,我可以告诉你更多。 您在构造函数中使用了 sharedPreferences,但是当调用构造函数时,活动还不存在,因此它没有任何 prederenceManager。这就是为什么你会得到一个空指针。正如我所说,移动 onCreate 方法中的所有内容将解决您的问题

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-22
  • 1970-01-01
  • 1970-01-01
  • 2020-08-11
  • 2012-04-15
  • 2011-11-19
  • 2014-05-09
相关资源
最近更新 更多