有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Android java。伊奥。FileNotFoundException没有这样的文件或>目录,尽管已授予权限

我正在尝试上传之前从相机拍摄的图像,我可以确认我被授予了READ_EXTERNAL_STORAGE的权限。我在Gradle使用Minsdk23版本

图像的Uri保存在数据库中,当我试图使用此Uri将其放入ImageView时

在这里,我请求以给定的Uri访问该文件

    if (ContextCompat.checkSelfPermission(context ,
                    Manifest.permission.READ_EXTERNAL_STORAGE)
            != PackageManager.PERMISSION_GRANTED) {
        if (ActivityCompat.shouldShowRequestPermissionRationale(context as Activity,
                        Manifest.permission.READ_EXTERNAL_STORAGE)) {
        } else {
            // No explanation needed, we can request the permission.
            ActivityCompat.requestPermissions(context,
                    arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE), REQUEST_PERMISSION_READ
                    )

        }
    } else {
        val imageArray  = post.postImages
        uploadImages(imageArray!!)

    }

Uri保存在JSONArray中,因此我删除了不需要的字符,并准备上传文件:

  val singleImage = imageUri
  val substr = singleImage.replace("\"","").split("file://").last()
  println("substr $substr")
  var finalFile: File? = File(substr)

  if(finalFile.exists()){
        println("finalFile $finalFile")
  }else{
      println("finalFile does not exist")
   }

I/System.out: substr /storage/emulated/0/customFolder/picture.jpg

I/System.out: finalFile /storage/emulated/0/customFolder/picture.jpg

这是检查文件是否存在的打印件,看起来好像不存在

java.io.FileNotFoundException:/storage/emulated/0/customFolder/picture.jpg (No such file or directory)

虽然在浏览设备上的文件时,我确实看到了图像,并且在使用相同的Uri将其放入imageview时,图像确实出现了

下面的步骤是上传文件(我正在使用我的上传由库Fast Android Networking处理)

 AndroidNetworking.upload("http://myUrl.com")
                   .addMultipartFile("file", finalFile)
                   .setPriority(Priority.HIGH)
                   .build()

考虑到我的文件被认为不存在,一旦文件开始上传,我就会收到一条错误消息:

FileNotFoundException: /storage/emulated/0/customFolder/picture.jpg (No such file or directory)

我收到了这个错误信息:

error: com.安卓networking.error.ANError: java.lang.IllegalStateException: closed

我不确定为什么文件没有被识别和/或创建。有人能确定为什么我的文件没有被创建吗


共 (1) 个答案

  1. # 1 楼答案

    我遇到的问题是由使用Fast Android网络库的错误引起的。我已经把这个issue标记给了开发者,他显然正在进行修复