デバイスの NPE でアプリがクラッシュしました。ACRA で受信したスタック トレースでは、行番号は 2 つのソース コード クラスSQLiteStatement
とSQLiteDatabase
. の場合SQLiteDatabase
、どのソース コード バージョンの行番号とも一致しない行番号があります。私のデバイスにはカスタム ROM がありません。Android 4.03 を搭載した Galaxy S2 です。
スタック トレースは次のとおりです。
java.lang.NullPointerException
at android.database.sqlite.SQLiteStatement.releaseAndUnlock(SQLiteStatement.java:290)
at android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:96)
at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:2025)
at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1965)
at android.database.sqlite.SQLiteDatabase.beginTransaction(SQLiteDatabase.java:690)
at android.database.sqlite.SQLiteDatabase.beginTransactionNonExclusive(SQLiteDatabase.java:605)
at android.database.sqlite.SQLiteStatement.acquireAndLock(SQLiteStatement.java:247)
at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:112)
at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1844)
at com.mydomain.myapp.albums.AlbumsData.insertOrIgnore(AlbumsData.java:89)
異なるバージョンSQLiteDataBase
のソースを見ると、数字が一致しないことを自分で確認できます。
たとえば、Android 4.03 のSQLiteDataBase
sourceでは、executesql(...)
1892 行にあるのに対し、私のスタック トレースでは 2025 行にあると言われています。
これはどのように可能ですか?
( NPE のソースについて尋ねているのではないことに注意してください)