Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么即使我的文件位于正确的位置,我仍会收到filenotfound异常?_Java_Android_Jakarta Mail - Fatal编程技术网

Java 为什么即使我的文件位于正确的位置,我仍会收到filenotfound异常?

Java 为什么即使我的文件位于正确的位置,我仍会收到filenotfound异常?,java,android,jakarta-mail,Java,Android,Jakarta Mail,下面是我以前工作过的代码。但在我最近格式化了我的手机后,它就不再工作了。请帮我做这个 设置路径的代码为: path = Environment.getExternalStorageDirectory().getPath() + "/IMG-20190324-WA0000.jpg"; try { m.addAttachment(path); if(m.send()) { Toast.makeText(context, "Email wa

下面是我以前工作过的代码。但在我最近格式化了我的手机后,它就不再工作了。请帮我做这个

设置路径的代码为:

 path = Environment.getExternalStorageDirectory().getPath() + "/IMG-20190324-WA0000.jpg";
 try {
        m.addAttachment(path);

        if(m.send()) {
            Toast.makeText(context, "Email was sent successfully :)", Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(context, "Email was not sent :(", Toast.LENGTH_LONG).show();
        }
    } catch(Exception e) {
        //Toast.makeText(context, "There was a problem sending the email.", Toast.LENGTH_LONG).show();
        Log.e("MailApp", "Could not send email", e);
    }
我得到以下错误:

E/MailApp: Could not send email
javax.mail.MessagingException: IOException while sending message;
  nested exception is:
    java.io.FileNotFoundException: /storage/emulated/0/IMG-20190324-WA0000.jpg: open failed: EACCES (Permission denied)
我的清单权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

文件像以前一样位于准确的位置,那么为什么代码不能读取它


我所要做的就是进入设备设置->应用->我的应用->打开存储权限。@Pklumpp帮了我的忙,这是值得称赞的

注意,屏幕截图是针对内部存储的,但您正在请求外部存储的权限。只是为了确保,您也授予了权限吗?@Pklumpp我该怎么做?@Lubji您可以进入设备设置、应用程序、选择应用程序并允许权限。我假设您没有从应用程序内部请求权限atm@Pklumpp我爱你,兄弟……它成功了;非常感谢我能帮助你,顺便说一句,欢迎来到stackoverflow!