所以基本上我试图生成缩略图并将其上传到服务器。所以这是我的代码,
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)
那么我做错了什么?
答案 0 :(得分:0)
您的错误消息表明缩略图为空。
从documentation for ThumbnailUtils.createVideoThumbnail开始,“如果视频损坏或格式不受支持,则可能会返回null。”
因此,您需要检查该调用的结果是否为null,并正确处理它。