null对象引用上的bitmap.compress

时间:2017-04-25 15:11:57

标签: java android bitmap

所以基本上我试图生成缩略图并将其上传到服务器。所以这是我的代码,

 Bitmap thumbnail = ThumbnailUtils.createVideoThumbnail(intent.getStringExtra("uri"), MediaStore.Video.Thumbnails.MINI_KIND);
 ByteArrayOutputStream baos = new ByteArrayOutputStream();
 thumbnail.compress(Bitmap.CompressFormat.JPEG, 100, baos);
 byte[] data = baos.toByteArray();

这是我的uri,我从之前的活动中得到了uri。而且它不是空的。

content://com.android.providers.media.documents/document/video%3A28682

但是当我运行此代码时,它会在thumnail.compress方法中显示nullpointerexception。

错误记录..

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.buckydroid.app.Utils.FirebaseStorage$2.onSuccess(Unknown Source)
                                                                              at com.buckydroid..Utils.FirebaseStorage$2.onSuccess(Unknown Source)
                                                                              at com.google.firebase.storage.StorageTask$1.zza(Unknown Source)
                                                                              at com.google.firebase.storage.StorageTask$1.zzk(Unknown Source)
                                                                              at com.google.firebase.storage.zze$2.run(Unknown Source)
                                                                              at android.os.Handler.handleCallback(Handler.java:751)
                                                                              at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                              at android.os.Looper.loop(Looper.java:154)
                                                                              at android.app.ActivityThread.main(ActivityThread.java:6126)
                                                                              at java.lang.reflect.Method.invoke(Native Method)
                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

那么我做错了什么?

1 个答案:

答案 0 :(得分:0)

您的错误消息表明缩略图为空。

documentation for ThumbnailUtils.createVideoThumbnail开始,“如果视频损坏或格式不受支持,则可能会返回null。”

因此,您需要检查该调用的结果是否为null,并正确处理它。