尝试将文件上传到OData服务时出现DataStreamException

时间:2020-05-19 15:30:52

标签: android odata sap-fiori sap-cloud-platform

我想找出引发异常的根本原因,换句话说,哪个流以及为什么关闭。

我正在开发一个Android应用程序,并且正在使用CV_ATTACHMENT_SRV OData服务。问题是我无法将媒体上传到该服务。

我通过使用方法创建了ByteStream

ByteStream content = ByteStream.fromInput(inputStream);

我尝试使用

createMedia(EntityValue entity, StreamBase content, HttpHeaders headers)

一种上传图片的服务方法,其中实体基本上是'OriginalContent'的实例,内容是先前创建的ByteStream,并且标头包含一些与OriginalContent相关的信息。

这就是我得到的:

com.sap.cloud.mobile.odata.DataStreamException: stream is closed  
at com.sap.cloud.mobile.odata.http.OKByteStreamBody.writeTo(OKByteStreamBody.java:46)  
at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.kt:59)  
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)  
...

我试图弄清楚是否可以访问要上传的文件,因此我尝试了上述方法,将文件放在外部存储中并打包到apk中。他们都没有工作。

你们遇到过这种情况吗?我很难找到类似的情况。请帮忙。

1 个答案:

答案 0 :(得分:0)

对于那些感兴趣的人,解决方案在于从

升级依赖项。
implementation group: 'com.sap.cloud.android', name: 'fiori', version: 3.0.0
implementation group: 'com.sap.cloud.android', name: 'onboarding', version: 3.0.0
implementation group: 'com.sap.cloud.android', name: 'odata', version: 3.0.0
implementation group: 'com.sap.cloud.android', name: 'foundation', version: 3.0.0

3.0.5(最可能的是,如果更新odata库,也可以)。

相关问题