【发布时间】:2015-07-28 10:40:15
【问题描述】:
我的 MySQL 数据库中有一个图像存储为 BLOB。我通过 PHP JSON 数组将图像返回到 android 应用程序,如下所示:$row_array['image'] = base64_encode($row['image']);
现在我在 android 中得到这样的值 String image = c.getString(TAG_IMAGE); 其中 c 是一个 JSON 对象。然后我尝试解码它
byte[] b = Base64.decode(image, 0);
Bitmap bmp = BitmapFactory.decodeByteArray(b, 0, b.length);
但这只会给我一个空指针异常并崩溃。我在这里做错了什么?
Logcat:
05-16 15:40:47.469: E/AndroidRuntime(30925): FATAL EXCEPTION: main
05-16 15:40:47.469: E/AndroidRuntime(30925): java.lang.NullPointerException
05-16 15:40:47.469: E/AndroidRuntime(30925): at com.example.shareity.ListNew$JSONParse.onPostExecute(ListNew.java:254)
05-16 15:40:47.469: E/AndroidRuntime(30925): at com.example.shareity.ListNew$JSONParse.onPostExecute(ListNew.java:1)
05-16 15:40:47.469: E/AndroidRuntime(30925): at android.os.AsyncTask.finish(AsyncTask.java:631)
05-16 15:40:47.469: E/AndroidRuntime(30925): at android.os.AsyncTask.access$600(AsyncTask.java:177)
05-16 15:40:47.469: E/AndroidRuntime(30925): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
05-16 15:40:47.469: E/AndroidRuntime(30925): at android.os.Handler.dispatchMessage(Handler.java:99)
05-16 15:40:47.469: E/AndroidRuntime(30925): at android.os.Looper.loop(Looper.java:137)
05-16 15:40:47.469: E/AndroidRuntime(30925): at android.app.ActivityThread.main(ActivityThread.java:4745)
05-16 15:40:47.469: E/AndroidRuntime(30925): at java.lang.reflect.Method.invokeNative(Native Method)
05-16 15:40:47.469: E/AndroidRuntime(30925): at java.lang.reflect.Method.invoke(Method.java:511)
05-16 15:40:47.469: E/AndroidRuntime(30925): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
05-16 15:40:47.469: E/AndroidRuntime(30925): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
05-16 15:40:47.469: E/AndroidRuntime(30925): at dalvik.system.NativeStart.main(Native Method)
【问题讨论】:
-
发布异常。是在 Base64.decode(图像中没有数据)还是在 BitmapFactory.decodeByteArray(数据无法正确 base64 解码)?
-
它只是将 NullPointerException 说成 blah blah @JPMoresmau
-
@YohanBlake 对您来说,它可能看起来不过是“等等等等”,但您的答案可能就在“等等等等”之内。如果您发布异常输出,有人可能会帮助您从中找到答案。
-
你试过我的答案了吗?
-
@DanGetz 我已经添加了 logcat
标签: php android mysql json blob