当应用程序启动并关闭时,我正在获取java.lang.NullPointerException。模拟器的错误是“不幸的是,appname已经停止”。它工作正常,直到我写了一堆新代码,并更改了清单。希望它不是清单,但我的问题是,我怎样才能找出问题的代码行?跟踪转储对我来说没有任何意义,即使它很冗长,但......还有11个不让我看到整件事。
我真的不知道那个错误意味着什么。我已经搜索过了,但似乎有一个列表可能意味着什么。我已经尝试了Project> Clean,我已经尝试过再次使用清单,但我仍然得到错误。我检查/取消选中外部库。刚刚完成了人们建议为其他人犯同样错误的事情。所以我真的很想知道,是什么路线设置它?
如果有帮助,这是输出:
06-29 08:37:23.680: E/AndroidRuntime(1225): FATAL EXCEPTION: main
06-29 08:37:23.680: E/AndroidRuntime(1225): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.upliftly.android/com.upliftly.android.UpliftlyActivity}: java.lang.NullPointerException
06-29 08:37:23.680: E/AndroidRuntime(1225): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1879)
06-29 08:37:23.680: E/AndroidRuntime(1225): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
06-29 08:37:23.680: E/AndroidRuntime(1225): at android.app.ActivityThread.access$600(ActivityThread.java:122)
06-29 08:37:23.680: E/AndroidRuntime(1225): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146)
06-29 08:37:23.680: E/AndroidRuntime(1225): at android.os.Handler.dispatchMessage(Handler.java:99)
06-29 08:37:23.680: E/AndroidRuntime(1225): at android.os.Looper.loop(Looper.java:137)
06-29 08:37:23.680: E/AndroidRuntime(1225): at android.app.ActivityThread.main(ActivityThread.java:4340)
06-29 08:37:23.680: E/AndroidRuntime(1225): at java.lang.reflect.Method.invokeNative(Native Method)
06-29 08:37:23.680: E/AndroidRuntime(1225): at java.lang.reflect.Method.invoke(Method.java:511)
06-29 08:37:23.680: E/AndroidRuntime(1225): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
06-29 08:37:23.680: E/AndroidRuntime(1225): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
06-29 08:37:23.680: E/AndroidRuntime(1225): at dalvik.system.NativeStart.main(Native Method)
06-29 08:37:23.680: E/AndroidRuntime(1225): Caused by: java.lang.NullPointerException
06-29 08:37:23.680: E/AndroidRuntime(1225): at android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:101)
06-29 08:37:23.680: E/AndroidRuntime(1225): at com.upliftly.android.UpliftlyActivity.<init>(UpliftlyActivity.java:19)
06-29 08:37:23.680: E/AndroidRuntime(1225): at java.lang.Class.newInstanceImpl(Native Method)
06-29 08:37:23.680: E/AndroidRuntime(1225): at java.lang.Class.newInstance(Class.java:1319)
06-29 08:37:23.680: E/AndroidRuntime(1225): at android.app.Instrumentation.newActivity(Instrumentation.java:1023)
06-29 08:37:23.680: E/AndroidRuntime(1225): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1870)
06-29 08:37:23.680: E/AndroidRuntime(1225): ... 11 more
答案 0 :(得分:8)
通常当您看到类似于您发布的堆栈跟踪的堆栈跟踪时,您应该将注意力集中在最后一个
之后的行中Caused by:
线。之后,检测具有包名称的行,并且(在大多数情况下)是导致代码异常的行。在您发布的堆栈跟踪中,该行是
at com.upliftly.android.UpliftlyActivity.<init>(UpliftlyActivity.java:19)
答案 1 :(得分:7)
查找您应用的包名称(我猜它是com.uplifty.android
):
at com.upliftly.android.UpliftlyActivity.<init>(UpliftlyActivity.java:19)
答案 2 :(得分:1)
就像其中两个答案所说: 像这个例子一样寻找你的包名:
at com.upliftly.android.UpliftlyActivity.<init>(UpliftlyActivity.java:19)
括号将告诉您哪个Java文件以及错误发生在哪一行。所以在这种情况下UpliftlyActivity.java第19行。
虽然您的Manifest或xml文件中的错误不会显示错误所在的文件或行号,因此查找起来比较棘手。
答案 3 :(得分:0)
在logcat中,它会给出包名和活动名称 行号。然后你需要观察那个特定的行 什么是可用的变量,那么你需要检查变量 及其对应的xml id。所以借助于此你可以避免 这个错误。我想在你发布的logcat
at com.upliftly.android.UpliftlyActivity.<init>(UpliftlyActivity.java:19)
以上行似乎是您的活动线 检查并避免错误。