【问题标题】:Fatal Exception: java.lang.RuntimeException bad array lengths at Cloudinary OnProgress method致命异常:Cloudinary OnProgress 方法中的 java.lang.RuntimeException 数组长度错误
【发布时间】: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,没有任何已知的修复。如果有人能指出可能导致问题的任何线索,我很乐意听到。

【问题讨论】:

    标签: android cloudinary


    【解决方案1】:

    这是来自 Cloudinary 的 Shirly :) 如果再次发生这种情况,您能否与我们联系并提供时间戳和云名称以进行进一步调查? 谢谢!

    【讨论】:

      猜你喜欢
      • 2014-02-07
      • 1970-01-01
      • 2015-04-16
      • 1970-01-01
      • 2016-05-05
      • 2018-01-11
      • 2020-12-12
      • 1970-01-01
      • 2013-06-01
      相关资源
      最近更新 更多