在Android Marshmallow上改装多部分API获取错误java.lang.IllegalStateException:多部分正文必须至少有一部分

在Android Marshmallow上改装多部分API获取错误java.lang.IllegalStateException:多部分正文必须至少有一部分,java,android,retrofit,retrofit2,Java,Android,Retrofit,Retrofit2,我正在使用改型2获得错误。它在安卓棉花糖以下的设备中运行良好。上面是棉花糖,下面是错误 >java.lang.IllegalStateException: Multipart body must have at least one part. 代码 MultipartBody.Builder=新的MultipartBody.Builder(); setType(MultipartBody.FORM); 试一试{ 对于(int i=0;i

我正在使用改型2获得错误。它在安卓棉花糖以下的设备中运行良好。上面是棉花糖,下面是错误

>java.lang.IllegalStateException: Multipart body must have at least one part.
代码

MultipartBody.Builder=新的MultipartBody.Builder();
setType(MultipartBody.FORM);
试一试{
对于(int i=0;i

你能帮我吗?

这是我使用请求正文上传图像的方式

RequestBody fileBody = RequestBody.create(MediaType.parse("image/*"), selectedImage /* file name*/);
MultipartBody.Part filePart = MultipartBody.Part.createFormData("image", selectedImage.getName(), fileBody);
在你的接口类中

 @Multipart
    @POST(UPLOAD_IMAGE)
    Call<JsonObject> uploadImage(@Part MultipartBody.Part image);
@Multipart
@POST(上传图片)
调用uploadImage(@Part MultipartBody.Part image);

它适用于所有设备。希望对您有所帮助。

本教程将帮助您解决问题

对于多文件上载,请使用此

    List<MultipartBody.Part> projectParts = new ArrayList<>();

    for (int i = 0; i < mFilesTobeincluded.size(); i++) {
        File file = new File(mFilesTobeIncluded.get(i));
        String boundary = String.valueOf(System.currentTimeMillis());

        Log.d(TAG, "requestUpload: image " + i + "  " + mFilesTobeincluded.get(i));
        RequestBody requestFile =
                RequestBody.create(
                        MediaType.parse("multipart/form-data; boundary=" + boundary),
                        file
                );
        projectParts.add(MultipartBody.Part.createFormData("name_of_key", file.getName(), requestFile));
    }
List projectParts=new ArrayList();
对于(int i=0;i
对于上面的marsmallow,您需要运行时权限才能访问已处理的文件运行时权限…@NileshRathod其在其他设备中工作感谢u kousei…我仅使用此链接解决了此问题..我同意您的答案
    List<MultipartBody.Part> projectParts = new ArrayList<>();

    for (int i = 0; i < mFilesTobeincluded.size(); i++) {
        File file = new File(mFilesTobeIncluded.get(i));
        String boundary = String.valueOf(System.currentTimeMillis());

        Log.d(TAG, "requestUpload: image " + i + "  " + mFilesTobeincluded.get(i));
        RequestBody requestFile =
                RequestBody.create(
                        MediaType.parse("multipart/form-data; boundary=" + boundary),
                        file
                );
        projectParts.add(MultipartBody.Part.createFormData("name_of_key", file.getName(), requestFile));
    }