[当我尝试通过改造上传图像时,我得到的是空值

问题描述 投票:0回答:1

当我尝试使用翻新上载图像时,我得到的是空值。这实际上仅发生在Xioami A2 Lite中。我不明白这里是什么问题。

这是我的代码

public void setFinalResponseMutableLiveData(final Context context, Uri fileuri, final PhotoView photoView, final String title) {
    photoView.onPhotoLoading();
    if (NetworkHelper.hasNetworAccess(context)){
        // create upload service client
        File file=new File(FileUtils.getPath(context,fileuri));
        RequestBody requestFile =
                RequestBody.create(
                        MediaType.parse(context.getContentResolver().getType(fileuri)),
                        file
                );

        // MultipartBody.Part is used to send also the actual file name
        MultipartBody.Part body =
                MultipartBody.Part.createFormData("file", file.getName(), requestFile);

        // add another part within the multipart request
        String descriptionString = title;
        RequestBody description =
                RequestBody.create(
                        okhttp3.MultipartBody.FORM, descriptionString);

        RetrofitClient.getInstance().getApi().getImageResponse(description,body).enqueue(new Callback<PhotoUploadResponse>() {
                    @Override
                    public void onResponse(Call<PhotoUploadResponse> call, Response<PhotoUploadResponse> response) {
                        photoView.onPhotoLoaded();
                        if (response.isSuccessful()){
                            finalResponseMutableLiveData.setValue(response.body());
                        }
                        else {
                            new CustomMessage((Activity)context,response.message());
                        }
                    }

                    @Override
                    public void onFailure(Call<PhotoUploadResponse> call, Throwable t) {
                        photoView.onPhotoLoaded();
                        new CustomMessage((Activity)context,t.getMessage());
                        Log.d("CURRENT", "onFailure: "+t.getMessage());
                    }
                });

    }
    else {
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                photoView.onPhotoLoaded();
                photoView.onInternetError();
            }
        },100);
    }
}
java android
1个回答
0
投票

根据您对空值错误出处的答复,检查位置:

setFinalResponseMutableLiveData(final Context context, Uri fileuri, final PhotoView photoView, final String title)

正在接到电话。在其调用点,通过设置断点并观察调试器中显示的值来确保fileuri不为空。当您将fileuri定义为不可为空的字段时,向其传递null值将使应用程序崩溃。

© www.soinside.com 2019 - 2024. All rights reserved.