バージョン6.0.1以降のサーバーに写真を送信することはできません。以下のエラーが発生しました。Photo To Serverをアップロードすることができません
12-20 16:37:42.888 31885-31885/com.testing E/BitmapFactory: Unable to
decode stream: java.io.FileNotFoundException:
/external_files/DCIM/Camera/JPEG_20171220_163728_946425952.jpg: open failed:
ENOENT (No such file or directory)
12-20 16:37:42.890 31885-31885/com.testing E/AndroidRuntime: FATAL
EXCEPTION: main
Process:
com.testing, PID: 31885
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean
android.graphics.Bitmap.compress(android.graphics.Bitmap$CompressFormat,
int, java.io.OutputStream)' on a null object reference
at
com.testing.CameraUtils.getBytes(CameraUtils.java:107)
at
com.testing.CameraUtils.saveToInternal(CameraUtils.java:124)
そのは、getBytesメソッドでエラーを示すカメラUtilsのクラスコードと内部メソッドに保存します。
public static String saveToInternal(Context context, Uri tempUri)
{
OutputStream out = null;
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 10;
Bitmap bmp= BitmapFactory.decodeFile(tempUri.getPath(),options);
File destinationInternalImageFile = new File(getOutputInternalMediaFile(context, 1).getPath());
byte[] bitmapdata=getBytes(bmp);
ByteArrayInputStream bs = new ByteArrayInputStream(bitmapdata);
try {
destinationInternalImageFile.createNewFile();
out = new FileOutputStream(destinationInternalImageFile);
byte[] buf = new byte[1024];
int len;
while ((len = bs.read(buf)) > 0) {
out.write(buf, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
}
finally {
try {
if (bs != null) {
bs.close();
}
if (out != null) {
bs.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
Log.e(TAG, "File Size : " + (destinationInternalImageFile.length()/1024) + "KB");
return destinationInternalImageFile.getPath();
}
//ビットマップからバイト配列
public static byte[] getBytes(Bitmap bitmap) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG,50, stream);
return stream.toByteArray();
}
//変換に変換バイト配列からビットマップへ
public static Bitmap getImage(byte[] image) {
return BitmapFactory.decodeByteArray(image, 0, image.length);
}
コード –
明らかにエラーは、ファイルまたはディレクトリにその名前の画像がないことを示します。 nullはあなたの圧縮関数に入ります。 –
[NullPointerExceptionとは何か、それを修正するにはどうすればいいですか?](https://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it) ) –