【发布时间】:2021-12-24 21:21:08
【问题描述】:
仅在 iOS 中遇到问题,在 android 中没有。
创建存储目录失败。错误域=NSCocoaErrorDomain Code=512 “文件“%40amdig%2Fcenflex-puraskar”无法保存在文件夹“ExponentExperienceData”中。” UserInfo={NSFilePath=/var/mobile/Containers/Data/Application/B8974F4F-B2F1-432C-AEEA-29C3127761C5/Documents/ExponentExperienceData/%40amdig%2Fcenflex-puraskar, NSUnderlyingError=0x281ea1dd0 {Error Domain=NSPOSIXErrorDomain Code=20 "Not一个目录"}}
版本:@react-native-async-storage/async-storage 尝试使用这些版本 1.15.9、1.15.5、1.13.2
系统信息 系统: 操作系统:Windows 10 10.0.19043 CPU:(8) x64 Intel(R) Core(TM) i5-8365U CPU @ 1.60GHz 内存:1.09 GB / 7.74 GB 二进制文件: 节点:14.17.4 - C:\Program Files\nodejs\node.EXE 纱线:未找到 npm: 6.14.14 - C:\Program Files\nodejs\npm.CMD 守望者:未找到 开发工具包: Android SDK:未找到 Windows SDK:未找到 IDE: Android Studio:未找到 Visual Studio:未找到 语言: Java:未找到 npmPackages: @react-native-community/cli:未找到 反应:16.13.1 => 16.13.1 反应原生:0.64.2 => 0.64.2 反应原生窗口:未找到 npmGlobalPackages: react-native:未找到
复制步骤
import AsyncStorage from "@react-native-async-storage/async-storage";
useEffect(async () => {
try {
console.log('test started')
await AsyncStorage.setItem("testKey", 'testValue');
} catch (e) {
console.log(e, 'setItem test error ')
}
}, [])
"bundleIdentifier": "com.domain.Cenflex",
之前使用相同的配置没有问题。更新 async-storage lib 和 expo 后,我遇到了这个错误
【问题讨论】:
-
我尝试了很多东西,但是当我在 iPhone 中重新安装 Expo Go 应用程序时,没有出现错误。
-
在进行了确切的更改后,我正面临这个确切的问题。我将我的博览会从 SDK 42 升级到了 43,并且
react-native中的AsyncStorage已被弃用,因此按照官方文档的建议,我从这种旧用法切换到新插件用法,即@react-native-async-storage/async-storage并开始面临这个问题。 -
另外由于某种原因,第一组
setItem和getItem调用工作得很好,但下一组后续调用未能抛出问题中提到的完全相同的错误。 @Ahmed,你找到解决这个问题的方法了吗?
标签: ios react-native expo upgrade asyncstorage