この状況をできるだけ単純化しようと思います。
次のコードを確認してください。
//...
ArrayList<ContentProviderOperation> batch = Lists.newArrayList();
while(recordsToProcess){
//... Grabbing data
//... built a ContentProviderOperation variable named operation
batch.add(operation);
//... setting recordsToProcess to true or false
}
try {
mContext.getContentResolver().applyBatch(Contract.CONTENT_AUTHORITY, batch);
} catch (RemoteException e) {
throw new RuntimeException("Problem applying batch operation", e);
} catch (OperationApplicationException e) {
throw new RuntimeException("Problem applying batch operation", e);
}
}
このプロセス中に、次のような OperationApplicationException がスローされます。
... Problem applying batch operation
... android.content.OperationApplicationException: insert failed
... Stack Trace ....
この例外は、「挿入が失敗した場合、または影響を受ける行数が予想される数と一致しなかった場合にスローされる」および/または「指定された制約により ContentProviderOperation のアプリケーションが失敗した場合にスローされる」ことを理解しています。
私のデータベース スキーマにはほとんど制約がなく、操作に含まれるデータは有効です。
例外がスローされた理由をさらに詳しく知る方法はありますか? どの制約が失敗しましたか? 等...?