我遇到了一个很奇怪的异常。它在这里运行良好,但我的客户不断遇到这个异常,然后崩溃,它花了我很多小时才弄明白,但不幸的是迄今为止还没有运气,任何帮助将不胜感激!奇怪的ArrayIndexOutOfBoundsException
这是代码:
protected void onPostExecute(List<File> result) {
try {
mBooks.clear();
if (result != null) {
ArrayList<BookInfo> newBooks = new ArrayList<BookInfo>();
for (File f : result) {
BookInfo bi = new BookInfo(BookCollections.this, f);
if (!contains(bi)) {
newBooks.add(bi);
}
}
mDB.insertBooks(newBooks);
mBooks.addAll(newBooks);
new AlertDialog.Builder(BookCollections.this)
.setTitle(newBooks.size() + " Books found!")
.setPositiveButton(android.R.string.ok, null)
.setView(
new BookInfoList(BookCollections.this,
newBooks)).show();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
mScanDlg.dismiss();
notifyDataSetChanged();
}
}
private boolean contains(BookInfo bi) {
if (bi == null) {
return true;
}
for (BookInfo book : mBooks) {
if (book.equalTo(bi)) {
return true;
}
}
for (FolderInfo fi : mFolders) {
if (fi.getBooks() != null) {
for (BookInfo book : fi.getBooks()) {
if (book.equalTo(bi)) {
return true;
}
}
}
}
return false;
}
请帮助我。由于
此异常(java.lang.ArrayIndexOutOfBoundsException)筹集最多
for (File f : result) {
BookInfo bi = new BookInfo(BookCollections.this, f);
if (!contains(bi)) {
newBooks.add(bi);
}
}
添加广泛的日志记录或发明一种方法来获得调用堆栈的时候发生这种情况... – user1494736 2012-07-14 05:16:47
你说它在这里工作得很好。这里有什么?你重新创建了这个问题吗?如果是的话,你可以发布calltrace的logcat输出吗? – 2012-07-14 05:56:09