0

私はJava(特にAndroid)にかなり慣れていません。ユーザーにギャラリーから画像を選択させようとすると、アプリはギャラリーからアプリのディレクトリ内のフォルダーに画像をコピーします (画像ボタンで選択した画像を表示するだけでなく)。ただし、「ハンドルされていない例外の種類 IOException」というコンパイラ エラーが発生します。

これは私のコードです:(以前のどこか)

Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(i, 2);

(onActivityResult 関数内)

Uri selectedImage = data.getData(); //data from onActivityResult
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
ImageButton abcd = (ImageButton) findViewById(R.id.btn_addpicture);
abcd.setImageBitmap(BitmapFactory.decodeFile(picturePath));
String command = "cp " + "'" +  selectedImage.getPath().toString() + "' '" + getFilesDir().getPath() + "/Images/" + VALUE_NAME + ".jpg";
Runtime.getRuntime().exec(command);

エラーは最後の行から発生します。誰が私がどこで間違ったのか説明できますか? エラーの意味がわかりません

4

2 に答える 2

1

このエラーは、入出力操作を行っていて、ハンドルされていない例外をスローしていることを意味します。

IO 操作が正常に行われる場所では、try-catch ブロックを使用します。

また、そのメソッドを使用する代わりに、Files メソッドを使用してファイルをコピーまたは移動すると、簡単になります。

ファイル転送の詳細については、このリンクを参照できます。

于 2013-06-28T07:29:27.747 に答える