私はAndroid開発者ガイドに従って、既存のカメラアプリを使用して写真を撮るアプリを作成しました。次に、ガイドのこの部分を使ってイメージビューに入れようとしていますhttps://developer.android.com/training/camera/photobasics.html#TaskScalePhoto BitmapFactory decodeFileがnullを返しています。私は次のコードに単純化しましたが、同じ結果が得られます。BitmapFactory decodeFileがnullを返すのはなぜですか?
Bitmap bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath);
imageView.setImageBitmap(bitmap);
mCurrentPhotoPathは
image.getAbsolutePath()
に設定し、例は ストレージが/既知に/ 0 /アンドロイド/データ//ファイル/写真/ JPEG_20170503_102533_2060032401.jpg
私はハードmCurrentPhotoPathの値をコーディングすることができますをエミュレートしている
写真と私はまだnullを取得します。
しかし、私は(写真は私の携帯電話、通常のカメラアプリを使用して個別に作成) ストレージと//0/DCIM /カメラ/ IMG_20161124_145814981_HDR.jpg エミュレートすることを置き換えるならば、それは動作します。
私は私のマニフェストで
uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
を持っています。 2つのファイルは同じ権限を持ち、ほぼ同じサイズです。私は他の場所でそれらをコピーすることができ、彼らは有効なjpegファイルであるようです。 何が起こっている可能性がありますか?
私は多くの投稿を見て、以下のバリエーションを含めていくつかのことを試しましたが、同じ結果が得られます。
File dest = new File(mCurrentPhotoPath);
FileInputStream fis = null;
fis = new FileInputStream(dest);
Bitmap img = BitmapFactory.decodeStream(fis);
smallPhoto.setImageBitmap(img);
パスは '/'で始まります。私は、あなたが働くと言っているものを含め、あなたのすべてが失敗することを期待しています。 – CommonsWare
間違ったBitmapOptionsを渡している可能性があります。 –
最初のパスが不正な形式になっていると、中間に2つの '//'があります – LukeJanyga