0
にアクセスする前に正しく初期化されていることを確認しカーソルが、私は一時的なSQLiteのテーブルでプレイするために、次のコードを使用し
private void doTemp(){
final Bitmap photo = ((BitmapDrawable) mPhotoImageView.getDrawable()).getBitmap();
boolean insertData = mDBTemp.add_Temp_POI_Values(mNameEditText.getText().toString(),
Utils.imageToByteArray(photo));
if (insertData){
Toast.makeText(this, R.string.fb_success, Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, R.string.fb_error, Toast.LENGTH_SHORT).show();
}
finish();
}
と一時から読み取るしようとfirebaseに送信:
private void onSubmit(){
final DBHelperForTemp mDBTemp = new DBHelperForTemp(this);
final Cursor data = mDBTemp.get_Data();
if (data != null && data.getCount() != 0 && data.moveToFirst()){
for (int i = 0; i < data.getCount(); i++) {
final String name = data.getString(data.getColumnIndex("name"));
final byte[] byteArray = data.getBlob(data.getColumnIndex("image"));
final Bitmap photo = BitmapFactory.decodeByteArray(byteArray, 0 , byteArray.length);
.........
それを使用しようとすると、私は次のエラーコードを取得する:
E/UncaughtException: java.lang.IllegalStateException: Couldn't read row 0, col 1 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.
at android.database.CursorWindow.nativeGetString(Native Method)
at android.database.CursorWindow.getString(CursorWindow.java:451)
at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:51)
at com.test.test.activities.ActivityMain.onSubmit
興味深いのは、私が一時テーブルに画像を持っていないとコードが機能することです。イメージがある場合、クラッシュしますが、そこにはイメージではなく名前の文字列を読み取ろうとします。
誰でも問題を検出するのに役立ちますか?
data.getCount()戻り値1. data.getColumnIndex( "name")戻り値0. data.getString(0)戻り値メソッド 'java.lang.IllegalStateException'例外がスローされました。 CursorWindowから行0、列1を読み取ることができませんでした。カーソルがデータにアクセスする前に、カーソルが正しく初期化されていることを確認してください。
はい。 8Mb持っています。 SQLiteデータベースから何か大きな画像を取得できますか? – gogoloi
イメージblobのデータベースを使用する代わりに、内部ストレージに保存します。サンプルはこちらhttps://stackoverflow.com/questions/17674634/saving-and-reading-bitmaps-images-from-internal-memory-in-android – TheOni