java.io.FileNotFoundException:即使我已在 AndroidManifest 中添加权限,访问也被拒绝

2024-01-15

我再次需要你的帮助!

我有一个 Android 应用程序,可以向外部存储器写入文件/从外部存储器读取文件。 我已经在 AndroidManifest 中写入了所有必需的权限,但仍然收到错误访问被拒绝。

我的代码:

private static File convertStreamToFile(InputStream is) throws IOException {

    String dir = Environment.getExternalStorageDirectory().getAbsolutePath();

// I have tried this one too but it didn't work!!
//   File root = new File (Environment.getExternalStorageDirectory(),"ekg_daten.zip");
    File root = new File(dir+ "/ekg_daten.zip");

    if (!root.exists()) 
    {
        root.mkdirs();
    }

//    File zippedDaten = new File(root, "outPut.zip");


    ZipInputStream zin = new ZipInputStream(is);
    ZipEntry ze = null;

    while ((ze = zin.getNextEntry()) != null) {                                           

        FileOutputStream fout = new FileOutputStream(root);

        for (int c = zin.read(); c != -1; c = zin.read()) {
            fout.write(c);
        }

        zin.closeEntry();

        fout.close();
    }

我的 AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.praktikum.androidcrestclient"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
    </uses-permission>
    <uses-permission android:name="android.permission.INTERNET" >
    </uses-permission>
    <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" > 
    </uses-permission>
   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >  
    </uses-permission>
    <uses-permission android:name="android.permission.READ_CONTACTS" >  
    </uses-permission>


and my logcat


10-12 18:33:24.297: I/ActivityManager(79): Force stopping package com.praktikum.androidcrestclient uid=10034
10-12 18:33:24.537: I/installd(34): move /data/dalvik-cache/data@[email protected] /cdn-cgi/l/email-protection@classes.dex -> /data/dalvik-cache/data@[email protected] /cdn-cgi/l/email-protection@classes.dex
10-12 18:33:24.537: D/PackageManager(79): New package installed in /data/app/com.praktikum.androidcrestclient-1.apk
10-12 18:33:24.537: W/PackageManager(79): Unknown permission android.permission.WRITE_INTERNAL_STORAGE in package com.praktikum.androidcrestclient
10-12 18:33:24.790: I/ActivityManager(79): Force stopping package com.praktikum.androidcrestclient uid=10034
10-12 18:33:24.887: D/dalvikvm(79): GC_EXPLICIT freed 662K, 59% free 4335K/10375K, external 3511K/3903K, paused 67ms
10-12 18:33:24.947: D/dalvikvm(228): GC_EXPLICIT freed 4K, 51% free 2885K/5831K, external 5876K/7285K, paused 79ms
10-12 18:33:25.077: W/RecognitionManagerService(79): no available voice recognition services found
10-12 18:33:25.187: D/dalvikvm(235): GC_EXPLICIT freed 85K, 53% free 2755K/5767K, external 1625K/2137K, paused 228ms
10-12 18:33:25.277: D/dalvikvm(79): GC_EXPLICIT freed 216K, 59% free 4288K/10375K, external 3511K/3903K, paused 87ms
10-12 18:33:25.297: I/installd(34): unlink /data/dalvik-cache/data@[email protected] /cdn-cgi/l/email-protection@classes.dex
10-12 18:33:25.307: D/AndroidRuntime(1938): Shutting down VM
10-12 18:33:25.317: D/dalvikvm(1938): GC_CONCURRENT freed 101K, 72% free 295K/1024K, external 0K/0K, paused 1ms+1ms
10-12 18:33:25.328: D/jdwp(1938): Got wake-up signal, bailing out of select
10-12 18:33:25.328: D/dalvikvm(1938): Debugger has detached; object registry had 1 entries
10-12 18:33:25.858: D/AndroidRuntime(1952): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
10-12 18:33:25.858: D/AndroidRuntime(1952): CheckJNI is ON
10-12 18:33:26.487: D/AndroidRuntime(1952): Calling main entry com.android.commands.am.Am
10-12 18:33:26.517: I/ActivityManager(79): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.praktikum.androidcrestclient/.MainActivity } from pid 1952
10-12 18:33:26.547: I/ActivityManager(79): Start proc com.praktikum.androidcrestclient for activity com.praktikum.androidcrestclient/.MainActivity: pid=1960 uid=10034 gids={3003, 1015}
10-12 18:33:26.587: D/AndroidRuntime(1952): Shutting down VM
10-12 18:33:26.607: D/dalvikvm(1952): GC_CONCURRENT freed 103K, 69% free 319K/1024K, external 0K/0K, paused 7ms+2ms
10-12 18:33:26.648: I/AndroidRuntime(1952): NOTE: attach of thread 'Binder Thread #3' failed
10-12 18:33:26.670: D/dalvikvm(1952): Debugger has detached; object registry had 1 entries
10-12 18:33:27.637: I/ActivityManager(79): Displayed com.praktikum.androidcrestclient/.MainActivity: +1s98ms
10-12 18:33:28.857: D/dalvikvm(157): GC_EXTERNAL_ALLOC freed 40K, 44% free 3469K/6151K, external 6952K/7268K, paused 44ms
10-12 18:33:32.627: W/KeyCharacterMap(157): No keyboard for id 0
10-12 18:33:32.627: W/KeyCharacterMap(157): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
10-12 18:33:33.006: D/dalvikvm(389): GC_EXPLICIT freed 7K, 54% free 2537K/5511K, external 1625K/2137K, paused 311ms
10-12 18:33:34.257: D/getrespond()(1960): service calling
10-12 18:33:34.726: W/System.err(1960): java.io.FileNotFoundException: /mnt/sdcard/ekg_daten.zip (Permission denied)
10-12 18:33:34.736: W/System.err(1960):     at org.apache.harmony.luni.platform.OSFileSystem.open(Native Method)
10-12 18:33:34.736: W/System.err(1960):     at dalvik.system.BlockGuard$WrappedFileSystem.open(BlockGuard.java:232)
10-12 18:33:34.736: W/System.err(1960):     at java.io.FileOutputStream.<init>(FileOutputStream.java:94)
10-12 18:33:34.736: W/System.err(1960):     at java.io.FileOutputStream.<init>(FileOutputStream.java:66)
10-12 18:33:34.736: W/System.err(1960):     at com.praktikum.androidcrestclient.RestClient.convertStreamToFile(RestClient.java:181)
10-12 18:33:34.736: W/System.err(1960):     at com.praktikum.androidcrestclient.RestClient.executeRequest(RestClient.java:152)
10-12 18:33:34.736: W/System.err(1960):     at com.praktikum.androidcrestclient.RestClient.Execute(RestClient.java:112)
10-12 18:33:34.736: W/System.err(1960):     at com.praktikum.androidcrestclient.MainActivity.retrieveSampleData(MainActivity.java:37)
10-12 18:33:34.736: W/System.err(1960):     at java.lang.reflect.Method.invokeNative(Native Method)
10-12 18:33:34.736: W/System.err(1960):     at java.lang.reflect.Method.invoke(Method.java:507)
10-12 18:33:34.736: W/System.err(1960):     at android.view.View$1.onClick(View.java:2139)
10-12 18:33:34.736: W/System.err(1960):     at android.view.View.performClick(View.java:2485)
10-12 18:33:34.746: W/System.err(1960):     at android.view.View$PerformClick.run(View.java:9080)
10-12 18:33:34.746: W/System.err(1960):     at android.os.Handler.handleCallback(Handler.java:587)
10-12 18:33:34.746: W/System.err(1960):     at android.os.Handler.dispatchMessage(Handler.java:92)
10-12 18:33:34.746: W/System.err(1960):     at android.os.Looper.loop(Looper.java:123)
10-12 18:33:34.746: W/System.err(1960):     at android.app.ActivityThread.main(ActivityThread.java:3683)
10-12 18:33:34.746: W/System.err(1960):     at java.lang.reflect.Method.invokeNative(Native Method)
10-12 18:33:34.756: W/System.err(1960):     at java.lang.reflect.Method.invoke(Method.java:507)
10-12 18:33:34.756: W/System.err(1960):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
10-12 18:33:34.756: W/System.err(1960):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
10-12 18:33:34.756: W/System.err(1960):     at dalvik.system.NativeStart.main(Native Method)
10-12 18:33:34.766: W/System.err(1960): java.lang.NullPointerException

拜托,有人可以帮忙吗?

Thanks


首先打开路径,然后添加文件:

Updated

String dir = Environment.getExternalStorageDirectory(); // getAbsolutePath is not requried
File path = new File(dir);
File root = new File(path,  "ekg_daten.zip");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java.io.FileNotFoundException:即使我已在 AndroidManifest 中添加权限,访问也被拒绝 的相关文章

  • Android STFP 库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在我的 Android 项目中使用 SFTP 安卓已经有了吗 SFTP 库 还是我必须实现它 I
  • 删除 json 对象字符串中的“\”

    如何删除下面字符串中的特殊字符 String x message content toom recipients id 1000001865 room subject room 我使用了 x replaceAll 但它不起作用 您必须转义正
  • 通过我的应用程序以编程方式插入新联系人,而不使用 Intent

    我正在使用一个应用程序 与手机联系人进行交互 我想将新联系人添加到我的手机联系人列表中 我已经尝试过以下代码 但它不起作用 void addContact Context ctx PreviewContactModel model Arra
  • Android 导航回到 Activity;不要重新加载父级

    我有一个场景 我单击 ListFragment 并启动一个新的 Activity 如下所示 public void onListItemClick ListView l View v int position long id super o
  • 如何找到特定路线上两点之间的距离?

    我正在为我的大学开发一个 Android 应用程序 可以帮助学生跟踪大学巴士的当前位置 并为他们提供巴士到达他们的预计时间 截至目前 我获取了公交车的当前位置 通过公交车上的设备 和学生的位置 我陷入了必须找到两个 GPS 坐标之间的距离的
  • 如何将 Google Now 搜索栏添加到我的应用程序中?

    谷歌刚刚将其搜索栏从 Google Now 引入到了 Play 商店应用程序中 如下面的 gif 所示 如何将这个操作栏搜索栏实现到我自己的应用程序中 我想要 style 汉堡动画 从工具栏按钮访问 麦克风按钮 对棒棒糖设备的连锁反应 我已
  • Kotlin 和惯用的书写方式,基于可变值“如果不为空,则...”

    假设我们有这样的代码 class QuickExample fun function argument SomeOtherClass if argument mutableProperty null doSomething argument
  • Flutter Spotify Api 身份验证

    我需要在使用 Spotify api 的 Flutter 应用程序中对用户进行身份验证 我使用 flutter web auth 打开 WebView 并让用户在那里登录 我无法返回应用程序 在 Spotify 仪表板中 我将回调 Uri
  • Android 中带有透明背景的 ImageButton [重复]

    这个问题在这里已经有答案了 我已经按照这篇文章在android中制作ImageButton 安卓图像按钮 https stackoverflow com questions 2283444 android image button 图像出现
  • 取消通知

    我使用Onesignal推送通知 需要取消所有onPause和onResume的通知 NotificationManager notificationManager NotificationManager getApplicationCon
  • twitter4j => AndroidRuntime(446): java.lang.NoClassDefFoundError: twitter4j.http.AccessToken

    我正在尝试使用 twitter4j 我的应用程序来连接并发布到 Twitter 我正在关注本教程 http blog doityourselfandroid com 2011 02 13 guide to integrating twitt
  • Android 26 (O) 通知不显示操作图标 [重复]

    这个问题在这里已经有答案了 随着 Android 26 O 引入通知渠道 我一直在调查 Google 提供的com example android notificationchannels 这个示例按预期工作 直到我尝试添加Action到示
  • Android - 正确使用 invalidateOptionsMenu()

    我一直在寻找很多invalidateOptionsMenu 我知道它的作用 但我想不出这种方法在现实生活中有用的任何例子 我的意思是 例如 假设我们要添加一个新的MenuItem to our ActionBar 我们可以简单地获取菜单on
  • 使用 AndroidX ExifInterface 从图像中检索 GPS EXIF 数据?

    我的目标是 Android 13 并使用新的照片选择器 https developer android com training data storage shared photopicker检索图像 例如 val photoPicker
  • 确定视图是否在屏幕上 - Android

    我对这个有点困惑 首先也是最重要的是 以下链接很有用 但是我提出了一些可见性问题 链接 检查视图可见性 https stackoverflow com questions 4628800 android how to check if a
  • 在 Android ADT Eclipse 插件中滚动布局编辑器

    有谁知道当布局编辑器的内容溢出一个 屏幕 时如何滚动这些内容 我说的是在设计时使用 ADT 布局编辑器 而不是在物理设备上运行时滚动 效果很好 关闭 Android 布局编辑器中的剪辑 切换剪辑 按钮位于 Android 布局编辑器的右上角
  • 如何以编程方式创建 CardView

    我正在开发一个 Android 应用程序Java Android Studio 我想在活动中创建CardView以编程方式 我想将以下属性设置为CardView layout width wrap content layout row 0
  • 从多个 TextView 中选择文本

    如何在android中从多个文本视图中选择文本 我已经尝试过以下代码 该代码一次仅适用于一个文本视图 我想一次性从许多文本视图中复制文本 android textIsSelectable true 你不能同时这样做 您需要在单个文本视图中设
  • 如何让用户在android列表视图中选择主题?

    我有一个带有两个标签的列表视图 标题和副标题 我想要深色和浅色背景作为用户选项 标题具有 textAppearanceMedium 副标题具有 textAppearanceSmall 我希望样式 MyTheme Dark 具有白色文本 My
  • 在DialogFragment中,onCreate应该做什么?

    我目前正在摆弄 DialogFragment 以学习使用它 我假设相比onCreateView onCreate 可以这样做 public void onCreate Bundle savedInstanceState super onCr

随机推荐

  • ASP.NET MVC 操作被调用两次

    我有一个特定的控制器操作被调用两次 这除了奇怪之外还导致我的应用程序的单例部分出现问题 这并不是真正的问题 它只是引起了我对两次调用的注意 知道为什么控制器操作每次都会执行两次吗 不回来false或者阻止对通过 AJAX 进行调用的链接上的
  • 如何将 QFlags 与 QML 结合使用?

    我有一个我创建的 QFlag 我想在 QML 中使用这个 QFlag 具体来说 我希望能够将几个标志组合在一起 并将它们作为参数传递给方法 我注意到这里没有明确列出 QFlags 作为 QML 支持的数据类型 http doc qt nok
  • iOS .onContinueUserActivity 未被调用

    onContinueUserActivity从未被调用过Apple 提供的状态恢复示例应用程序 https developer apple com documentation swiftui restoring your app s sta
  • 哪些语言向开发人员公开 IEEE 754 陷阱?

    我想出于教育目的玩这些陷阱 数值微积分中默认行为的一个常见问题是我们 错过 了错误运算中出现的 Nan 或 inf 默认行为是通过计算进行传播 但某些操作 如比较 会破坏链条并释放 Nan 并且其余处理将继续 而不会在算法的先前步骤中确认奇
  • Mysql存储函数和分组最小值[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Schema 数据库架构得到简化 活动表该表存储事件 CREATE TABLE Events event id bigint 20 u
  • MethodImpl(AggressiveInlined) - 它有多激进?

    所以我稍微看了一下MethodImpl 属性 http msdn microsoft com en us library system runtime compilerservices methodimplattribute v vs 11
  • iOS 中 Unity Json.net System.Reflection.Emit 错误

    我按照说明将 link xml 包含在 asset 文件夹中 但仍然收到错误 我认为这可能与反序列化字典有关 因为错误紧随其后 System Collection Generic IDictionary 2 set Item TKey TV
  • 如何在注释处理中引用方法的实现?

    我正在研究 Java javax 注释处理 假设我有一个方法注释 Target ElementType METHOD public interface MethodAnnotation 现在我想处理从带注释的方法的类型重写的所有方法 int
  • 主干视图的私有和公共变量

    在主干视图中 您将把私有变量和公共变量放在哪里 现在我有这样的事情 myView Backbone View extend initialize function options this myPublic I m public 我尝试添加
  • array_map 和 htmlentities

    我一直在尝试使用array map to 将字符转换为 HTML 实体 with htmlentities 像这样 lang array map htmlentities lang 我的数组如下所示 lang array lang var
  • 如何在没有 Amazon Cognito 的情况下使用 AWS S3?

    我正在使用 Node js REST API 来验证我的用户 一旦他们通过身份验证 我就允许他们发布带有文字的照片 我的计划是将照片的文本和 URL 存储在数据库中 这样 当他们访问帖子提要时 我的应用程序将查询数据库以获取文本和 URL
  • PyQt6:AttributeError:类型对象“QImage”没有属性“Format_RGB888”[重复]

    这个问题在这里已经有答案了 我试图将代码从 PyQt5 移植到 PyQt6 但出现以下错误 AttributeError type object QImage has no attribute Format RGB888 尽管在 PyQt6
  • “+var === +var”内部如何工作来验证 var 是否是数字?

    看到这个问题 JavaScript 中是否有一种 内置 方法来检查字符串是否为有效数字 https stackoverflow com questions 175739 is there a built in way in javascri
  • 使用不同的 jdbc 驱动程序连接到多个数据库

    我需要编写一个基于守护进程的java进程 不是基于web的 它将连接到Oracle 10G数据库 从中读取一些数据 然后连接到SQL Server数据库并将数据写入表中 听起来很简单 但我对此有几个疑问 我需要有两个 jdbc 驱动程序 即
  • 如何更改 Smalltalk 中变形的位置?二维网格

    我无法更改某些变形的位置 虽然可以通过以下方式将它们从检查器中移走 self position 50 50 例如 我编写了一个函数 该函数应该设置二维变形集合的位置 Cell 是简单 switchmorph 的子类 拥有这个函数的类是 bo
  • Python读取麦克风

    我试图让 python 从我的麦克风中获取数据 因为我想制作一个随机生成器 它将使用其中的噪音 所以基本上我不想记录声音 而是将其作为数据文件读取 但是是实时的 我知道 Labview 可以做到这一点 但我不喜欢这个框架 并且正在努力提高
  • python正确登录后无法获取wordpress Dashboard

    我想创建一个脚本 在使用我的组合登录后返回 wordpress 仪表板 如下所示 屏幕截图 所以我创建了这个脚本 import urllib urllib2 os sys requests re site http example com
  • 以编程方式构建公式,无需字符串操作

    举例来说 考虑 R 中的基本回归模型 form1 lt Petal Length Sepal Length Sepal Width fit1 lt lm form1 iris 我向在这里发帖的植物学家致歉 为了添加二次项和交互项 我知道三种
  • 在数据帧中的滚动窗口上应用函数,其中整个数据帧传递给函数

    我有一个由 YearMo 索引的 5 列数据框 yearmo np repeat np arange 2000 2010 100 12 x for x in range 1 13 10 rates pd DataFrame data np
  • java.io.FileNotFoundException:即使我已在 AndroidManifest 中添加权限,访问也被拒绝

    我再次需要你的帮助 我有一个 Android 应用程序 可以向外部存储器写入文件 从外部存储器读取文件 我已经在 AndroidManifest 中写入了所有必需的权限 但仍然收到错误访问被拒绝 我的代码 private static Fi