2014-02-26 154 views
0

我目前遇到NullPointerException。我使用日誌語句來實現在讀取一行特定代碼時關閉它。空指針異常:Android

我讀了很多關於這種類型的異常,但我不明白這個特定的聲明有什麼問題。

try { 

    Log.i(TAG, "1"); // Breaks here 
    mDiaryId = ContentUris.parseId(launchingIntent.getData()); 
    Log.i(TAG, "2"); 

} catch (NumberFormatException e) { 
    Log.i(TAG, "3"); 
    mDiaryId = -1; 
} 
+0

你有調試嗎?可能它與launchingIntent爲空有關 – RMalke

回答

1

你需要調用launchingIntent.getData()後檢查null。喜歡這個。

try { 

    Log.i(TAG, "1"); 
    Uri data = getIntent().getData(); 
    if (data != null) { // <-- check data for null 
     mDiaryId = ContentUris.parseId(data); 
    } else { 
     mDiaryId = -1; 
     Log.i(TAG, "Data is null"); 
    } 
    Log.i(TAG, "2"); 

} catch (NumberFormatException e){ 
    Log.i(TAG, "3"); 
    mDiaryId = -1; 
} 
+0

我覺得launchchingIntent本身是null,因此試圖做launchingIntent.getData()拋出一個NPE。 –

+0

如果您的啓動意圖來自getIntent(),則它不會爲空。 –

+0

哦,你修改了.Dntnt看到了。 :)我試圖指出直接使用launchingIntent巴里。 –