2012-06-29 20 views
5

當應用啓動並關閉時,我得到一個java.lang.NullPointerException權限。模擬器的錯誤是「不幸的是,appname已停止」。它工作正常,直到我寫了一堆新代碼,並更改了清單。希望這不是表現,但我的問題是,我怎麼能找出哪一行代碼是問題?跟蹤轉儲對我來說沒有任何意義,即使它很冗長,有...更多不會讓我看到整個事情。如何獲取拋出錯誤的特定代碼行

我真的不知道錯誤的含義。我已經搜索過它,但似乎有一個可能意味着的事情清單。我已經嘗試了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) 
+0

謝謝,我在解釋什麼Logcat試圖告訴我時遇到了麻煩。現在我知道了,這幫助我隔離了錯誤並解決了問題。 –

+0

很高興我能幫忙:) – Angelo

7

查找您的應用程式套件名稱(我猜這是com.uplifty.android):

at com.upliftly.android.UpliftlyActivity.<init>(UpliftlyActivity.java:19) 
0

在logcat的。然後,你需要遵守特定的線在 它會給包名稱和 行號的活動名稱什麼是可用的變量,那麼你需要檢查變量 及其相應的XML ID。所以在這個幫助下你可以避免 這個錯誤。我想在您發佈的logcat

at com.upliftly.android.UpliftlyActivity.<init>(UpliftlyActivity.java:19) 

上述行似乎是你的活動線,你可以 檢查,並避免錯誤。

1

就像兩個問題的答案說: 看像這個例子你的包名稱:

at com.upliftly.android.UpliftlyActivity.<init>(UpliftlyActivity.java:19) 

括號告訴你其中的Java文件,哪行發生在錯誤。因此,在這種情況下,UpliftlyActivity.java第19行。

儘管您在Manifest或xml文件中的錯誤不會顯示錯誤所在的文件或行號,所以它們更難以找到。