2017-09-18 5 views
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を読み取ることができませんでした。カーソルがデータにアクセスする前に、カーソルが正しく初期化されていることを確認してください。

答えて

1

保存した画像が大きすぎる可能性があります。CursorWindowの最大サイズは2048Kbです。

+0

はい。 8Mb持っています。 SQLiteデータベースから何か大きな画像を取得できますか? – gogoloi

+0

イメージblobのデータベースを使用する代わりに、内部ストレージに保存します。サンプルはこちらhttps://stackoverflow.com/questions/17674634/saving-and-reading-bitmaps-images-from-internal-memory-in-android – TheOni

関連する問題