Expo MediaLibrary报错:_ExponentMediaLibrary.default.MediaType未定义
解决expo-media-library导入即崩溃的问题
针对你遇到的仅导入expo-media-library就导致应用崩溃的问题,大概率是原生模块未正确集成到Dev Client中,以下是具体的排查和解决步骤:
重新构建Dev Client:
Expo Dev Client不会自动同步新安装的原生模块,安装expo-media-library后必须重新构建客户端才能让原生代码生效。执行以下命令:# 清理并重新生成原生项目文件 npx expo prebuild --clean # 重新构建iOS客户端(根据平台选择) npx expo run:ios # 或重新构建Android客户端 npx expo run:android校验依赖版本兼容性:
检查package.json中expo和expo-media-library的版本是否匹配,不同的Expo SDK版本对应特定的expo-media-library版本,版本不兼容会导致原生模块加载失败。清除Metro缓存:
缓存可能导致模块解析异常,执行命令清除缓存后重启项目:npx expo start --clear确认权限配置(可选但建议):
虽然导入崩溃不是权限直接导致的,但提前配置好相册权限可以避免后续调用时出错。在app.json的expo.ios.infoPlist和expo.android.permissions中添加对应权限:{ "expo": { "ios": { "infoPlist": { "NSPhotoLibraryAddUsageDescription": "需要访问相册以保存图片", "NSPhotoLibraryUsageDescription": "需要访问相册以读取图片" } }, "android": { "permissions": [ "android.permission.READ_EXTERNAL_STORAGE", "android.permission.WRITE_EXTERNAL_STORAGE" ] } } }
完成以上步骤后,重新导入expo-media-library应该就能正常运行了。
内容的提问来源于stack exchange,提问作者Lando Sotelo
相关产品推荐
相关产品推荐

