致命异常:Cloudinary OnProgress 方法中的 java.lang.RuntimeException 数组长度错误
Posted
技术标签:
【中文标题】致命异常:Cloudinary OnProgress 方法中的 java.lang.RuntimeException 数组长度错误【英文标题】:Fatal Exception: java.lang.RuntimeException bad array lengths at Cloudinary OnProgress method 【发布时间】:2019-11-27 00:04:00 【问题描述】:当我尝试上传到 Cloudinary 服务以减小视频大小时,有极少数用户在特定设备版本上崩溃。他们因以下错误而崩溃 -
Fatal Exception: java.lang.RuntimeException
bad array lengths
我似乎无法在我的设备上重现该错误,而且它似乎不再出现。这是整个跟踪 -
Fatal Exception: java.lang.RuntimeException
bad array lengths
android.os.Parcel.readIntArray (Parcel.java:905)
android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag (INotificationManager.java:732)
android.app.NotificationManager.notify (NotificationManager.java:230)
android.support.v4.app.NotificationManagerCompat.notify (NotificationManagerCompat.java:212)
android.support.v4.app.NotificationManagerCompat.notify (NotificationManagerCompat.java:196)
com.onemdtalent.app.util.CloudinaryListenerService.onProgress (CloudinaryListenerService.java:80)
com.cloudinary.android.DefaultCallbackDispatcher$1.handleMessage (DefaultCallbackDispatcher.java:66)
android.os.Handler.dispatchMessage (Handler.java:111)
android.os.Looper.loop (Looper.java:207)
android.app.ActivityThread.main (ActivityThread.java:5740)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:905)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:766)
这里是相关的 OnProgress 方法 -
@Override
public void onProgress(String requestId, long bytes, long totalBytes)
int x = 5 / 0;
if (totalBytes > 0)
double progressFraction = (double) bytes / totalBytes;
int progress = (int) Math.round(progressFraction * 1000);
mBuilder.setProgress(1000, ((100 / 3) * 2) * 10 + (progress / 3), false); //include compress and storage progress components to final progress calculation
mBuilder.setContentText(String.format("Uploading video: %d%% (%d KB)", (int) ((((100 / 3) * 2) * 10 + (progress / 3)) * 0.1), bytes / 1024));
else
mBuilder.setProgress(1000, 1000, true);
mBuilder.setContentText(String.format("%d KB", bytes / 1024));
onError(new Throwable("Something wrong with file. "));
mManagerCompat.notify(NOTI_ID, mBuilder.build());
过去 2 天我一直在搜索这个 bug,它似乎是一个与操作系统相关的 bug,没有任何已知的修复。如果有人能指出可能导致问题的任何线索,我很乐意听到。
【问题讨论】:
【参考方案1】:这是来自 Cloudinary 的 Shirly :) 如果再次发生这种情况,您能否与我们联系并提供时间戳和云名称以进行进一步调查? 谢谢!
【讨论】:
以上是关于致命异常:Cloudinary OnProgress 方法中的 java.lang.RuntimeException 数组长度错误的主要内容,如果未能解决你的问题,请参考以下文章