Java Android 10打开失败:enoint(没有这样的文件或目录)

Java Android 10打开失败:enoint(没有这样的文件或目录),java,android,retrofit,android-file,Java,Android,Retrofit,Android File,我面临的问题与pdf,我想上传一个pdf使用多部分,但问题是当我通过文件路径android 10给我这个错误 关于ActivityResult: Uri uri = data.getData(); String src = uri.getPath(); File file = new File(src); RequestBody requestBody = RequestBody.create(MediaType.parse("*/*"), file); MultipartB

我面临的问题与pdf,我想上传一个pdf使用多部分,但问题是当我通过文件路径android 10给我这个错误

关于ActivityResult:

Uri uri = data.getData();
String src = uri.getPath();
File file = new File(src);
RequestBody requestBody = RequestBody.create(MediaType.parse("*/*"), file);
MultipartBody.Part body = MultipartBody.Part.createFormData("userfile", file.getName(), requestBody);

不要在api 29及以上版本上使用RequestBody.create(MediaType.parse(“/”)文件),因为它将尝试打开inputsteam并引发异常。(如果启用了作用域存储且文件不是来自媒体),请再次使用字节数组。

。。。uri不是文件的路径OK谢谢,我应该怎么做才能获得文件的路径呢?在私有应用程序存储中创建自己的文件,然后将uri指向的流复制到它。。。多次询问-不,我不会显示代码,也不会找到重复的问题,因此我们无法从文件中选择文件并上载到服务器?当然,您可以直接使用uri将文件上载到服务器。你也应该在10岁以下做。Allways.Thank bro请保留字节数组上传方式请在Java中读取inputstream中的字节。互联网上有很多这样做的例子。使用RequestBody.create(MediaType.parse(“/”),字节)
context.contentResolver.openInputStream(uri).?use{
      // read bytes and create requestbody here
}