Android 位图压缩:空点异常错误
当试图压缩位图时,我得到一个空指针异常,这样我就可以将它发送到ByteArrayOutputStream以获取字节数组。日志错误如下所示Android 位图压缩:空点异常错误,android,bitmap,Android,Bitmap,当试图压缩位图时,我得到一个空指针异常,这样我就可以将它发送到ByteArrayOutputStream以获取字节数组。日志错误如下所示 java.lang.RuntimeException: An error occurred while executing doInBackground() at android.os.AsyncTask$3
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:309)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Caused by: 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 worldnp.zpmobi.mobi.test.MainActivity$Encode_image.doInBackground(MainActivity.java:102)
at worldnp.zpmobi.mobi.test.MainActivity$Encode_image.doInBackground(MainActivity.java:94)
at android.os.AsyncTask$2.call(AsyncTask.java:295)
java代码:
protected Void doInBackground(Void... voids) {
bitmap = BitmapFactory.decodeFile(file_uri.getPath());
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
bitmap.recycle();
byte[] array = stream.toByteArray();
encoded_string = Base64.encodeToString(array, 0);
return null;
}
当位图被压缩时,应用程序崩溃。我的代码哪里做错了
protected Void doInBackground(Void... voids) {
Bitmap bitmap = BitmapFactory.decodeFile(file_uri.getPath());
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
bitmap.recycle();
byte[] array = stream.toByteArray();
encoded_string = Base64.encodeToString(array, 0);
return null;
}
初始化变量
bitmap
时,您没有给它指定类型。您没有位图<代码>位图==null。只需在使用前进行检查,如果为空,则不要使用。此外,您应该告诉我们file\u uri.getPath()
的值。我认为它不是有效的文件系统路径。初始化变量bitmap时,您没有给它指定类型。
。胡说八道。然后代码甚至无法编译。谁投了这个票?