2013-08-30 33 views
0

這聽起來很荒謬,但我不知道發生了什麼。Android - log.d導致程序崩潰-RESOLVED-

我有一個for循環有很多行,並且其中的一行導致NullPointerException。所以我在每行之後放置一個log.d來找出導致錯誤的確切行。

最初,它看起來像這樣

for(int i = 0;i<(int)db.countScores();i++){ 
     Log.d("UserLog","hello"); 
     //creating layout to hold views 
     RelativeLayout relativeLayout = new RelativeLayout(this); 
     RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(
       RelativeLayout.LayoutParams.MATCH_PARENT, 
       RelativeLayout.LayoutParams.WRAP_CONTENT); 
     //creating gamemode textview 
     Log.d("UserLog","step 1"); 
     final TextView gameMode = new TextView(this); 
     Log.d("UserLog","step 2"); 
     gameMode.setText(db.getScoreData("game_type")[i]); 
     Log.d("UserLog","step 3"); 
     int density = getResources().getDisplayMetrics().densityDpi; 
     Log.d("UserLog","step 4"); 
     gameMode.setTextSize((int)25 * density); 
     LayoutParams gameModelp = new LayoutParams(
       RelativeLayout.LayoutParams.WRAP_CONTENT, 
       RelativeLayout.LayoutParams.WRAP_CONTENT); 
     gameModelp.addRule(RelativeLayout.ALIGN_PARENT_TOP); 
     gameModelp.addRule(RelativeLayout.ALIGN_PARENT_LEFT); 
     Log.d("UserLog","step 5"); 
     gameMode.setLayoutParams(gameModelp); 
     Log.d("UserLog","step 6"); 
     gameMode.setId(1100+i); 
     Log.d("UserLog","step 7"); 
     relativeLayout.addView(gameMode); 
     Log.d("UserLog","step 8"); 
     final TextView corrects = new TextView(this); 
     Log.d("UserLog","step 9"); 
     corrects.setText(db.getScoreData("corrects")[i]); 
     Log.d("UserLog","step 10"); 
     corrects.setTextSize((int)25 * density); 
     ... moar code 
} 

和輸出:顯示「步驟1,步驟2,步驟3 .....」一路直到10並將它與一個零指示字例外崩潰

我不知道在第10步之後線路出了什麼問題,所以我又爲接下來的30行做了更多的日誌。具有諷刺意味的是,它從步驟1直到步驟30再次輸出一個nullpointerexception。

任何人都可以指導我做什麼?我可以發佈完整的代碼(沒有log.ds),但它很長。

編輯 - logcat的

08-30 14:58:25.477: D/AndroidRuntime(12339): Shutting down VM 
08-30 14:58:25.477: W/dalvikvm(12339): threadid=1: thread exiting with uncaught exception (group=0x4165d700) 
08-30 14:58:25.487: E/AndroidRuntime(12339): FATAL EXCEPTION: main 
08-30 14:58:25.487: E/AndroidRuntime(12339): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.vsifc.elderlyapp/com.vsifc.elderlyapp.ReviewScoresActivity}: java.lang.NullPointerException 
08-30 14:58:25.487: E/AndroidRuntime(12339): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2339) 
08-30 14:58:25.487: E/AndroidRuntime(12339): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2389) 
08-30 14:58:25.487: E/AndroidRuntime(12339): at android.app.ActivityThread.access$600(ActivityThread.java:153) 
08-30 14:58:25.487: E/AndroidRuntime(12339): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1269) 
08-30 14:58:25.487: E/AndroidRuntime(12339): at android.os.Handler.dispatchMessage(Handler.java:99) 
08-30 14:58:25.487: E/AndroidRuntime(12339): at android.os.Looper.loop(Looper.java:137) 
08-30 14:58:25.487: E/AndroidRuntime(12339): at android.app.ActivityThread.main(ActivityThread.java:5289) 
08-30 14:58:25.487: E/AndroidRuntime(12339): at java.lang.reflect.Method.invokeNative(Native Method) 
08-30 14:58:25.487: E/AndroidRuntime(12339): at java.lang.reflect.Method.invoke(Method.java:525) 
08-30 14:58:25.487: E/AndroidRuntime(12339): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) 
08-30 14:58:25.487: E/AndroidRuntime(12339): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) 
08-30 14:58:25.487: E/AndroidRuntime(12339): at dalvik.system.NativeStart.main(Native Method) 
08-30 14:58:25.487: E/AndroidRuntime(12339): Caused by: java.lang.NullPointerException 
08-30 14:58:25.487: E/AndroidRuntime(12339): at com.vsifc.elderlyapp.ReviewScoresActivity.onCreate(ReviewScoresActivity.java:120) 
08-30 14:58:25.487: E/AndroidRuntime(12339): at android.app.Activity.performCreate(Activity.java:5133) 
08-30 14:58:25.487: E/AndroidRuntime(12339): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
08-30 14:58:25.487: E/AndroidRuntime(12339): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2293) 
08-30 14:58:25.487: E/AndroidRuntime(12339): ... 11 more 

http://pastebin.com/bTZcgZMA

的完整代碼

 final TextView gameMode = new TextView(this); 
     gameMode.setText(db.getScoreData("game_type")[i]); 
     int density = getResources().getDisplayMetrics().densityDpi; 
     gameMode.setTextSize((int)25 * density); 
     LayoutParams gameModelp = new LayoutParams(
       RelativeLayout.LayoutParams.WRAP_CONTENT, 
       RelativeLayout.LayoutParams.WRAP_CONTENT); 
     gameModelp.addRule(RelativeLayout.ALIGN_PARENT_TOP); 
     gameModelp.addRule(RelativeLayout.ALIGN_PARENT_LEFT); 
     gameMode.setLayoutParams(gameModelp); 
     gameMode.setId(1100+i); 
     relativeLayout.addView(gameMode); 
     final TextView corrects = new TextView(this); 
     corrects.setText(db.getScoreData("corrects")[i]); 
     corrects.setTextSize((int)25 * density); 
     LayoutParams correctslp = new LayoutParams(
       RelativeLayout.LayoutParams.WRAP_CONTENT, 
       RelativeLayout.LayoutParams.WRAP_CONTENT); 
     correctslp.addRule(RelativeLayout.BELOW,1100+i); 
     corrects.setLayoutParams(correctslp); 
     corrects.setId(1200+i); 
     relativeLayout.addView(corrects); 
     final TextView wrongs = new TextView(this); 
     wrongs.setText(db.getScoreData("wrongs")[i]); 
     wrongs.setTextSize((int)25 * density); 
     LayoutParams wrongslp = new LayoutParams(
       RelativeLayout.LayoutParams.WRAP_CONTENT, 
       RelativeLayout.LayoutParams.WRAP_CONTENT); 
     wrongslp.addRule(RelativeLayout.BELOW,1100+i); 
     wrongslp.addRule(RelativeLayout.RIGHT_OF,1200+i); 
     wrongs.setLayoutParams(wrongslp); 
     wrongs.setId(1300+i); 
     relativeLayout.addView(wrongs); 
     final TextView rate = new TextView(this); 
     int tempValue1 = Integer.parseInt((db.getScoreData("corrects")[i])); 
     int tempValue2 = Integer.parseInt((db.getScoreData("wrongs")[i])); 
     float tempValue3 = tempValue1/tempValue2; 
     tempValue3*=100; 
     double tempValue4 = Math.floor(tempValue3); 
     rate.setText(String.valueOf(tempValue4) + "%"); 
     rate.setTextSize((int)25 * density); 
     LayoutParams ratelp = new LayoutParams(
       RelativeLayout.LayoutParams.WRAP_CONTENT, 
       RelativeLayout.LayoutParams.WRAP_CONTENT); 
     ratelp.addRule(RelativeLayout.BELOW,1100+i); 
     ratelp.addRule(RelativeLayout.RIGHT_OF,1300+i); 
     rate.setLayoutParams(wrongslp); 
     rate.setId(1400+i); 
     relativeLayout.addView(rate); 
     theLayout.addView(relativeLayout); //line 120 
+0

請發佈logcat –

+0

也張貼導致錯誤的線 –

+0

我張貼日誌作爲一個pastebin。我無法找到與第一個地方的錯誤行 – chesnutcase

回答

0

-resolved- 複製粘貼: 我不好,線120是正確的行後它。我解決了這個問題,顯然是因爲錯誤地定義了佈局。對不起,造成了所有的麻煩。然而,現在我有一個單獨的問題關於意見不可見,但我想我會創建一個單獨的問題,

+2

(只能在2天內接受你自己的答案)ufufufufufufuu – chesnutcase