WebView에서 SQLite db에 캐시 된 일부 원격 데이터를 보여주는 응용 프로그램을 작성하고 있습니다. 데이터는 JavaScript 인터페이스를 통해 WebView의 JavaScript 함수에 의해 요청됩니다.안드로이드 응용 프로그램이 예외없이 종료됩니다.
사용자가 페이지의 입력 요소에 입력 할 때 자바 스크립트 함수는 자바 함수를 호출하여 검색 결과를 요청하고 SQL 함수를 호출합니다. 그런 다음 결과가 적합한 JSON 형식으로 패키징되어 반환됩니다.
매우 빠르게 입력하지 않으면 데이터를 가져 오는 것이 좋습니다. 몇 키를 누른 후 앱을 빨리 입력하면 없이이 던져지는 예외가 발생하며 홈 화면으로 돌아갑니다.
나는 원인을 좁히기 위해 관리해 왔습니다. .query 메소드에 대한 호출을 주석 처리하면 충돌을 방지 할 수 있지만 앱은 쓸모 없게됩니다.
어떤 응용 프로그램이 종료되었는지 확인하는 방법이 있습니까? 다른 로그 또는 도움이 될만한 도구가 있습니까?
자바 기능 코드 :
public Lot[] getLotList(String query, int limitCount) {
...
...
String[] resultColumns = new String[] { LotsSearch._ID };
String queryWhere = LotsSearch.TABLE_NAME + " MATCH ?";
String[] queryArgs = new String[] { query + "*" };
String sortOrder = LotsSearch.COLUMN_NAME_NUMBER + " ASC, " + LotsSearch.COLUMN_NAME_TITLE + " ASC";
String limit = null;
Cursor cursor = null;
if (limitCount != -1)
limit = "0," + limitCount;
try {
cursor = mDb.query(LotsSearch.TABLE_NAME, resultColumns, queryWhere, queryArgs, null, null, sortOrder, limit);
if (cursor != null && cursor.moveToFirst()) {
result = new Lot[cursor.getCount()];
try {
int idColumnIndex = cursor.getColumnIndexOrThrow(LotsSearch._ID);
int lotId;
Lot lot;
do {
lotId = cursor.getInt(idColumnIndex);
lot = mLots.get(lotId);
if (lot != null)
result[index++] = lot;
} while (cursor.moveToNext());
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
}
} catch (SQLiteException e) {
e.printStackTrace();
} finally {
if (cursor != null)
cursor.close();
}
...
...
return result;
}
UPDATE :
내가
logcat -b events
응용 프로그램 충돌을 실행하여 액세스 할 수있는 다른 로그가 있음을 발견했다 단지 하나의 항목이 있습니다
I/am_proc_died( 59): [11473,com.example.app]
앱 종료가이 로그 항목의 설정을 보여줍니다 gracefuly 때
I/am_finish_activity( 59): [1157978656,22,com.example.app/.MainActivity,app-request]
I/am_pause_activity( 59): [1157978656,com.example.app/.MainActivity]
I/am_on_paused_called(11473): com.example.app.MainActivity
I/am_destroy_activity( 59): [1157978656,22,com.example.app/.MainActivity]
로그 게시 –
게시 할 항목이 없으며 logcat이 완전히 비어 있습니다 (충돌 할 때마다 단일 항목이 추가되지 않음). 그래서 다른 디버깅 제안 사항이 있는지 묻습니다. – Swav
브레이크 포인트를 적용하여 디버깅을 시도 했습니까? 단지 바보 같은 질문 이군요. –