Expo执行expo eject时报Cannot read property 'resources' of null如何解决
Expo eject报错Cannot read property 'resources' of null 解决方案
报错原因说明
你碰到的Cannot read property 'resources' of null错误中,为null的resource对应的是Android原生项目下的res/values/colors.xml资源文件对象。Expo在eject过程中会自动向这个文件写入启动屏相关的颜色配置,读取不到这个文件、文件格式损坏、或者启动屏配置异常都会导致读取结果为null,触发这个报错。
解决步骤
- 第一步:清理残留异常文件
删除项目根目录下已生成的android、ios文件夹,同时删除.expo缓存文件夹、node_modules文件夹、package-lock.json/yarn.lock依赖锁文件。 - 第二步:校验启动屏配置
打开项目根目录的app.json或者app.config.js,检查expo.splash配置段,确保配置完整,没有空值、缺段的情况:
正确配置参考:
如果你不需要深色模式启动屏,不要保留空的{ "expo": { "splash": { "image": "./assets/splash.png", "resizeMode": "contain", "backgroundColor": "#ffffff" } } }splash.dark配置段,直接删掉即可。 - 第三步:重新执行eject操作
先重新安装依赖:yarn install或者npm install,再执行带清理参数的eject命令:expo eject --clean
如果以上操作后还是报错,可以升级全局expo-cli到最新版本,同时将项目内的expo-splash-screen包升级到和你当前使用的Expo SDK版本匹配的版本,再重复第三步操作即可。
内容的提问来源于stack exchange,提问作者Kshitij Bajracharya
相关产品推荐
相关产品推荐

