2022-10-11技术00
请注意,本文编写于 54 天前,最后修改于 47 天前,其中某些信息可能已经过时。

最近试着build了一个react native的android项目,血压嗯高,踩了一堆一堆的坑,得出结论,node_moudles就是一坨💩

环境配置

react native是依赖于node构建的跨平台移动端框架,本质上感觉就是一个web,所以它也有node的通病,屎一样的node_moudles。。。。我参考了这几篇教程配置的环境,直接贴在下面我就不单独写了(毕竟人家的肯定比我专业一点),按教程来一点点安装即可 官方中文文档 知乎大神教程

踩坑

1. node_moudles 库依赖版本冲突,以及各种乱七八糟的问题

node_moudles内部某些库的依赖冲突的时候会报错,很难解决,,,最好的解决办法是换yarn去自动处理这些问题 更新:之后又遇到了各种个样的问题,最简单粗暴且有效的办法:

rm -rf node_moudles/
yarn install

重装node_moudles解决90%的问题(

2. macos bash_profile重启terminal不生效的问题

因为build react native 是在terminal环境下的,所以需要配置bash_profile环境变量文件,但是每次启动terminal都需要source ./bash_profile,关闭terminal以后就会失效,所以就很难受 解决办法: 在bash_profile目录下,编写zshrc文件,内容如下

if [ -f ~/.bash_profile ]; then
   source ~/.bash_profile
fi
~      

这些脚本的意义在于,每次启动terminal的时候会自动装载路径下的bash_profile文件,就不需要手动配置环境变量了 保存脚本后运行:

source ~./.zshrc

3. npm timeout

老生常谈的问题了,,,,换镜像并改用yarn就好

4. gradle与java版本不适配

不得不说,gradle的版本兼容问题一直是历史大坑,当出现这样的报错时,就大概是Java版本和gradle不兼容的问题了:

BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version

这个时候就要看看gradle版本对应哪个Java版本,我因为本地电脑系统里的Java版本是18、13、8,而项目gradle要11.。。。所以找了大半天切换一下Java版本为11就解决了这个问题,然后yarn react-native run-android就可以正常build了

本文作者:伞菌

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!