Java 为什么我的SQL数据库不能在Android中工作?

Java 为什么我的SQL数据库不能在Android中工作?,java,android,sql,error-handling,Java,Android,Sql,Error Handling,在我的应用程序中,点击一个图像按钮就可以进入多媒体资料。单击图像后,我想调用ActivityResult来存储图像路径,但它不起作用。在我的LogCat中,它总是告诉我它在试图保存图像路径时崩溃 MyonActivityResult方法: mImageRowId = savedInstanceState != null ? savedInstanceState.getLong(ImageAdapter.KEY_ROWID) : null; @Override protected void on

在我的应用程序中,点击一个图像按钮就可以进入多媒体资料。单击图像后,我想调用ActivityResult来存储图像路径,但它不起作用。在我的
LogCat
中,它总是告诉我它在试图保存图像路径时崩溃

My
onActivityResult
方法:

mImageRowId = savedInstanceState != null ? savedInstanceState.getLong(ImageAdapter.KEY_ROWID) : null;

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  if(requestCode == PICK_FROM_FILE && data != null && data.getData() != null) {
    Uri uri = data.getData();

    if(uri != null) {
      Cursor cursor = getContentResolver().query(uri, new String[] {
        android.provider.MediaStore.Images.ImageColumns.DATA
      }, null, null, null);
      cursor.moveToFirst();
      String image = cursor.getString(0);
      cursor.close();

      if(image != null) {
      // HERE IS WHERE I WANT TO SAVE THE IMAGE. HERE MUST BE THE ERROR!
        if (mImageRowId == null) {
          long id = mImageHelper.createImage(image);

          if (id > 0) {
            mImageRowId = id;
          }
        }

        // Set the image and display it in the edit activity
        Bitmap bitmap = BitmapFactory.decodeFile(image);
        mImageButton.setImageBitmap(bitmap);
      }
    }
  }
}
private static final Long DEF_ROW_ID = 0L;
  @Override
  protected void onSaveInstanceState(Bundle outState) {
    outState.putLong(ImageAdapter.KEY_ROWID, mImageRowId != null ? mImageRowId : DEF_ROW_ID);
    super.onSaveInstanceState(outState);
}
这是我的
onSaveInstanceState
方法:

mImageRowId = savedInstanceState != null ? savedInstanceState.getLong(ImageAdapter.KEY_ROWID) : null;

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  if(requestCode == PICK_FROM_FILE && data != null && data.getData() != null) {
    Uri uri = data.getData();

    if(uri != null) {
      Cursor cursor = getContentResolver().query(uri, new String[] {
        android.provider.MediaStore.Images.ImageColumns.DATA
      }, null, null, null);
      cursor.moveToFirst();
      String image = cursor.getString(0);
      cursor.close();

      if(image != null) {
      // HERE IS WHERE I WANT TO SAVE THE IMAGE. HERE MUST BE THE ERROR!
        if (mImageRowId == null) {
          long id = mImageHelper.createImage(image);

          if (id > 0) {
            mImageRowId = id;
          }
        }

        // Set the image and display it in the edit activity
        Bitmap bitmap = BitmapFactory.decodeFile(image);
        mImageButton.setImageBitmap(bitmap);
      }
    }
  }
}
private static final Long DEF_ROW_ID = 0L;
  @Override
  protected void onSaveInstanceState(Bundle outState) {
    outState.putLong(ImageAdapter.KEY_ROWID, mImageRowId != null ? mImageRowId : DEF_ROW_ID);
    super.onSaveInstanceState(outState);
}
这是我的
DbAdapter
中的一部分:

public long createImage(String image) {
  ContentValues cv = new ContentValues();
  cv.put(KEY_IMAGE, image);
  return mImageDb.insert(DATABASE_TABLE, null, cv);
}

你能找到问题吗?

你的mImageHelper是什么

否则,您将尝试使用包含android.provider.MediaStore.Images.ImageColumns.DATA的变量image创建位图。但此列不是文件路径:)

对onActivityresult(data.getData)中接收的数据对象进行查询,以检索列MediaStore.Images.Media.data

您应该从路径创建图像


祝您好运。

请重新进行代码缩进,并清楚地说明您尝试了什么以及在LogCat中遇到的确切错误。