У меня есть кусок кода, чтобы сохранить Bitmap в SD-карте, но у меня есть простая ошибка Exception Null Pointer ...NullPointerException при сохранении растрового изображения в Android
String sdcardState = android.os.Environment.getExternalStorageState();
String destPath = null;
/////////////////////////////////////////////////////////////////////////////////////
int indexSepar=absoluteFilePathSource.lastIndexOf(File.separator);//THIS IS THE ERROR LINE
////////////////////////////////////////////////////////////////////////////////////
int indexPoint=absoluteFilePathSource.lastIndexOf(".");
if(indexPoint<=1)
indexPoint=absoluteFilePathSource.length();
String fileNameDest=absoluteFilePathSource.substring(indexSepar+1, indexPoint);
fileNameDest+="_AMNET";
if (sdcardState.contentEquals(android.os.Environment.MEDIA_MOUNTED))
destPath = android.os.Environment.getExternalStorageDirectory()
+ File.separator + fileNameDest+".png";
OutputStream fout = null;
try {
Log.v("Path", destPath);
fout = new FileOutputStream(destPath);
destBitmap.compress(Bitmap.CompressFormat.PNG, 100, fout);
if(!IS_ENCODE_IMAGE_CH)
Media.insertImage(getContentResolver(),destPath, fileNameDest, "AMNET Encoded");
result=Uri.parse("file://"+destPath);
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, result));
fout.flush();
fout.close();
} catch (IOException e) {
e.printStackTrace();
}
destBitmap.recycle();
вот мой журнал кот:
06-01 13:20:52.239: E/AndroidRuntime(1340): FATAL EXCEPTION: Thread-112
06-01 13:20:52.239: E/AndroidRuntime(1340): java.lang.NullPointerException
06-01 13:20:52.239: E/AndroidRuntime(1340): at ir.megadev.amnet.MainActivity.encode(MainActivity.java:844)
06-01 13:20:52.239: E/AndroidRuntime(1340): at ir.megadev.amnet.MainActivity.access$2(MainActivity.java:769)
06-01 13:20:52.239: E/AndroidRuntime(1340): at ir.megadev.amnet.MainActivity$10$1.run(MainActivity.java:430)
06-01 13:20:52.239: E/AndroidRuntime(1340): at java.lang.Thread.run(Thread.java:856)
положить LogCat здесь .. – Riser
Существует ровно одна причина для NPE; у вас есть переменная, которая имеет значение «null», и вы пытаетесь ее использовать. –
06-01 13: 20: 52.239: E/AndroidRuntime (1340): FATAL EXCEPTION: Thread-112 06-01 13: 20: 52.239: E/AndroidRuntime (1340): java.lang.NullPointerException 06-01 13 : 20: 52.239: E/AndroidRuntime (1340): at ir.megadev.amnet.MainActivity.encode (MainActivity.java:844) 06-01 13: 20: 52.239: E/AndroidRuntime (1340): at ir.megadev .amnet.MainActivity.access $ 2 (MainActivity.java:769) 06-01 13: 20: 52.239: E/AndroidRuntime (1340): at ir.megadev.amnet.MainActivity $ 10 $ 1.run (MainActivity.java:430) 06-01 13: 20: 52.239: E/AndroidRuntime (1340): at java.lang.Thread.run (Thread.java:856) –