You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio替换内置存储文本文件行内容 运行报错解决求助

问题修复方案

核心错误原因

  • 路径拼接逻辑错误:Environment.getExternalStorageDirectory() 已经返回 /storage/emulated/0 前缀,你定义的PATH自带同前缀,拼接后生成的路径完全错误,同时PATH的值缺少data层级,和你实际的目标文件路径不匹配
  • 缺少存储权限配置:Android 高版本对公共存储的读写需要动态申请权限,未授权会导致文件读写失败
  • 你看到的两个报错中,E/libEGL: Invalid file path for libcolorx-loader.so 是部分设备的系统级渲染类警告,和当前文件操作逻辑无关,无需单独处理;E/Parcel: Reading a NULL string not supported here. 是文件读取失败返回空值触发的底层报错,修复路径和权限后会自动消失。

具体修复步骤

  1. 修正路径定义
    将原全局PATH定义修改为:
public static final String PATH = "Android/data/File.txt";

原代码onCreate中构造的infile对象没有被使用,属于冗余代码可以直接删除。

  1. 补充权限配置
    在AndroidManifest.xml中添加权限声明:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

如果你的应用targetSdkVersion >= 29,在application节点添加属性临时适配分区存储:

<application
    ...
    android:requestLegacyExternalStorage="true">
  1. 增加动态权限申请逻辑
    在onCreate中调用文件操作方法前,先判断是否已经获得存储权限,未授权则先发起动态权限申请,用户同意后再执行文件读写逻辑。

  2. 优化异常排查逻辑
    将catch块的通用提示改为打印具体异常信息,方便后续定位问题:

} catch (Exception e) {
    e.printStackTrace();
    System.out.println("Problem reading file: " + e.getMessage());
}

内容的提问来源于stack exchange,提问作者Madara Uchiha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 05:30:00