【问题标题】:Why am I getting a NoSuchFileException when running readAllBytes on this file为什么在此文件上运行 readAllBytes 时出现 NoSuchFileException
【发布时间】:2019-08-20 21:23:42
【问题描述】:

我正在尝试制作一个使用 OpenAPLR 的简单 android 应用程序

http://doc.openalpr.com/cloud_api.html

所以我复制了Java部分下关于如何发出REST api请求的代码并将其全部放入按钮的onClick方法中并拍摄了车牌的照片并将其保存为位置中的license_plate.jpg

app/res/drawable/license_plate.jpg

但是每当我运行应用程序时,我总是会收到指向这些行的错误

Path path = Paths.get("drawable/license_plate.jpg");
byte[] data = Files.readAllBytes(path);

java.nio.file.NoSuchFileException: drawable/license_plate.jpg

我应该将这张图片保存在哪里,以便在申请期间使用它? 当我不只是使用我已经预加载的单张图片时,我应该在哪里保存用于未来应用程序的图像?

【问题讨论】:

  • 给出完整路径(app/...)并尝试。如果它有效,那么您的相对路径需要根据此图像文件与运行应用程序/文件的关系进行修复
  • 我尝试在 android studio 的文件查看器中右键单击 license_plate.jpg 并选择“复制路径”和“复制相对路径”并将它们都放在 Paths.get() 中并得到同样的 NoSuchFileException 错误

标签: java android file path


【解决方案1】:

你给出了错误的路径。您只能将图片保存在设备中,并且 然后给出图像文件夹路径,例如:

Path path = Paths.get("/storage/projects/alpr/samples/testing/car1.jpg");
byte[] data = Files.readAllBytes(path);

【讨论】:

  • 所以我不能将图像放在我原来的 android studio 项目中的任何位置并在我的应用程序中访问它?我必须把它放在手机上的文件夹中才能使用它?
  • Uri.parse("android.resource://"+BuildConfig.APPLICATION_ID+"/" + R.drawable.license_plate.jpg);
  • 我认为你可以像这样使用 Path path = Paths.get(Uri.parse("android.resource://"+BuildConfig.APPLICATION_ID+"/" + R.drawable.license_plate.jpg) );
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-08
  • 1970-01-01
  • 2019-04-29
  • 2018-03-12
  • 1970-01-01
相关资源
最近更新 更多