最近自己配了一下React native环境,各种坑。以下两个给我留下了深刻的印象,其实都是这样一种心情:解决不了超级蛋疼,解决完了觉得自己一定遇到了一个假问题!不多说,请看大屏幕:
1、ndk-build binary cannot be found, check if you've set $ANDROID_NDK environment variable correctly or if ndk.dir is setup in local.properties
2、SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable
也许Windows环境变量配好后就能很好的使用了。mac(貌似还有Ubuntu)就没这么好运了。受这里启发:
*解决方法:
1、打开Mac终端,输入open .bash_profile,没有的话可以自己新建一个这个文件,这个用来配置我们的环境变量;
2、在文件中添加这两行:
export ANDROID_NDK_HOME=你的NDK地址eg:/Users/wzl-pc/Library/Android/ndk/android-ndk-r10e
export ANDROID_HOME=你的SDK地址eg:/Users/wzl-pc/Library/Android/sdk
**************几分钟后**************
但愿你没有遇到了这样的问题:Error watching file for changes: EMFILE
*解决方法:查找资料后发现原来是升级后watchman不可用了,需要重装watchman。
1.卸载原来安装的watchman: brew uninstall --force watchman
2.删除原来的安装文件: rm -rf /usr/local/var/run/watchman/
3.重新安装watchman: brew install watchman
安装好了,重试一下。希望你看到想要的结果。OK,有问题分享出来,大家可以少走弯路
**************几天后**************
几天后做RN嵌入的时候遇到下面这个问题
Could not get BatchedBridge, make sure your bundle is packaged correctly
原因好像是需要配置离线Js服务器来着?
*解决方法:
1、在app/src/main文件夹下创建文件夹:asset
2、在Android Studio中打开Terminal终端工具,默认的应该在项目的根目录下(就是敲ls可以看到app文件夹)
3、在这里输入一面命令(只有一条哦)
react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output app/src/main/assets/index.android.bundle --assets-dest app/src/main/res/
4、然后就是下面样子
好了,重新运行就好啦!希望你的也跑通了。如果没有可能我没写清楚,希望大神指点哈!