我有一個在市場上的應用程序,但在某些情況下,它強制關閉在公開。根據崩潰錯誤,indexOf命令(NullPointerException)有問題。部分代碼:Android的nullpointerexception在.indexOf()
contactName = null;
Context context = getApplicationContext();
Cursor cursor = context.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
myArr.add("");
while (cursor.moveToNext())
{
contactName = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
spaceIndex = contactName.indexOf(' '); //this is the bad row
spaceLastIndex = contactName.lastIndexOf(' ');
myArr.add(contactName);
}
我在3種不同的手機上測試我的應用,應用工作正常。所以我不能測試代碼,如果我改變了一些東西,因爲我無法區分它們。什麼會導致錯誤,爲什麼只出現在幾部手機上? (下載量的5%)。有一個人聯繫了我這個錯誤,他的手機中有幾個特殊字符的聯繫人(HTC Legend CM 7.1和Vodafone 845 Android 2.1)。所以我給我的聯繫人添加了相同的字符,在名稱前放置了空格,嘗試了所有與聯繫人姓名混淆的應用,應用順利運行,所以這不是問題。我沒有選擇。
if(contactName!=「」)也不錯? – erdomester 2012-03-25 21:12:18
我接受這個作爲第一個答案 – erdomester 2012-03-26 10:12:53
if(contactName!=「」)不!這是行不通的! null和空字符串是兩個不同的東西 – Kousalik 2012-03-28 15:05:56