Android Studio报ENOENT错误,IntelliJ代码正常运行求助
问题原因分析
路径完全不兼容Android系统
你写的C:\Users\mely\AndroidStudioProjects\exportingfile.xlsx是Windows本地路径,Android设备/模拟器不存在C盘这种目录结构,这是导致文件找不到的核心原因。权限未正确配置
- Android 6.0(API 23)及以上系统,仅在Manifest声明
READ_EXTERNAL_STORAGE、WRITE_EXTERNAL_STORAGE权限不够,必须在代码中动态申请权限,主动向用户获取授权。 - Android 10(API 29)及以上的Scoped Storage机制,即便添加
tools:ignore="ScopedStorage",依然会限制直接访问外部存储的任意路径,你的写法不符合该机制要求。
- Android 6.0(API 23)及以上系统,仅在Manifest声明
文件存放位置错误
若要在Android项目中使用该Excel文件,需将文件放在src/main/assets目录(无则手动创建),或放到Android设备的合法外部存储路径,而非Windows本地路径。
修正示例(读取assets目录下的Excel文件)
- 将
exportingfile.xlsx复制到项目的src/main/assets目录。 - 修改读取代码:
private String findRow(String cellContent) throws IOException { AssetManager assetManager = getAssets(); InputStream inputStream = assetManager.open("exportingfile.xlsx"); XSSFWorkbook workbook = new XSSFWorkbook(inputStream); XSSFSheet sheet = workbook.getSheetAt(0); for (Row row : sheet) { for (Cell cell : row) { if (cell.getCellType() == CellType.STRING) { String cellStr = cell.getStringCellValue().trim(); if (cellStr.equals(cellContent)) { Row targetRow = sheet.getRow(row.getRowNum()); if (targetRow != null && targetRow.getCell(9) != null) { return targetRow.getCell(9).toString(); } } } } } workbook.close(); inputStream.close(); return ""; }
内容的提问来源于stack exchange,提问作者Florin123
相关产品推荐
相关产品推荐

