栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

阿里云oss-java.lang.ClassCastException

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

阿里云oss-java.lang.ClassCastException

java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType

java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType
            at k.c.b(SourceFile:1)
            at q2.c.b(SourceFile:134)
            at q2.c.call(SourceFile:1)
            at java.util.concurrent.FutureTask.run(FutureTask.java:266)
            at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
            at java.lang.Thread.run(Thread.java:784)

Oss上传文件,使用kotlin 开发时出现了一个问题

*混淆打包后会报错,正常运行没有问题


报错写法

val put = PutObjectRequest(ConstKey.BUCKET_NAME, ossPath, localFilePath)
put.setProgressCallback { _, currentSize, totalSize ->
                val progress: Int = (100 * currentSize / totalSize).toInt()
                LogUtils.e("oss", "progress:$progress")
            }

修改后

val put = PutObjectRequest(ConstKey.BUCKET_NAME, ossPath, localFilePath)
put.progressCallback =
            OSSProgressCallback { request, currentSize, totalSize ->
                val progress: Int = (100 * currentSize / totalSize).toInt()
                if (progress == 0 || progress == 100) {
                    LogUtils.e("upload:${request.uploadFilePath} progress:$progress")
                }
            }

附带阿里oss android 文档路径 简单上传 - 对象存储 OSS - 阿里云

使用的方法异步上传回调

// 构造上传请求。
// 依次填写Bucket名称(例如examplebucket)和Object完整路径(例如exampledir/exampleobject.txt)。
// Object完整路径中不能包含Bucket名称。
PutObjectRequest put = new PutObjectRequest("examplebucket", "exampledir/exampleobject.txt", fileUri);

// 异步上传时可以设置进度回调。
put.setProgressCallback(new OSSProgressCallback() {
    @Override
    public void onProgress(PutObjectRequest request, long currentSize, long totalSize) {
        Log.d("PutObject", "currentSize: " + currentSize + " totalSize: " + totalSize);
    }
});

OSSAsyncTask task = oss.asyncPutObject(put, new OSSCompletedCallback() {
    @Override
    public void onSuccess(PutObjectRequest request, PutObjectResult result) {
        Log.d("PutObject", "UploadSuccess");
        Log.d("ETag", result.getETag());
        Log.d("RequestId", result.getRequestId());
    }

    @Override
    public void onFailure(PutObjectRequest request, ClientException clientExcepion, ServiceException serviceException) {
        // 请求异常。
        if (clientExcepion != null) {
            // 客户端异常,例如网络异常等。
            clientExcepion.printStackTrace();
        }
        if (serviceException != null) {
            // 服务端异常。
            Log.e("ErrorCode", serviceException.getErrorCode());
            Log.e("RequestId", serviceException.getRequestId());
            Log.e("HostId", serviceException.getHostId());
            Log.e("RawMessage", serviceException.getRawMessage());
        }
    }
});
// 取消上传任务。
// task.cancel(); 
// 等待上传任务完成。
// task.waitUntilFinished(); 

问题出在设置上传回调上,可能是我的写法问题,仅做为开发记录

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/821073.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号