Android java.io.FileNotFoundException 没有这样的文件或 > 目录,尽管已授予权限
Android java.io.FileNotFoundException No such file or > directory, although permissions are granted
我正在尝试上传以前从相机拍摄的图像,我可以确认我已获得 READ_EXTERNAL_STORAGE
的许可。我在 Gradle.
中使用 minSdkVersion 23
图片的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 将其放入图像视图时,图像确实显示了。
下一步是上传文件(我正在使用我的上传由图书馆处理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.androidnetworking.error.ANError:
java.lang.IllegalStateException: closed
我不确定为什么无法识别 and/or 创建的文件。有谁能确定为什么我的文件没有被创建?
我遇到的问题是由使用快速 Android 网络库的错误引起的。我已将此 issue 标记给开发人员,他显然正在修复。
我正在尝试上传以前从相机拍摄的图像,我可以确认我已获得 READ_EXTERNAL_STORAGE
的许可。我在 Gradle.
图片的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 将其放入图像视图时,图像确实显示了。
下一步是上传文件(我正在使用我的上传由图书馆处理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.androidnetworking.error.ANError: java.lang.IllegalStateException: closed
我不确定为什么无法识别 and/or 创建的文件。有谁能确定为什么我的文件没有被创建?
我遇到的问题是由使用快速 Android 网络库的错误引起的。我已将此 issue 标记给开发人员,他显然正在修复。