最近開始接觸rn,官方起手,裝了一堆工具,而後啓動項目的時候出現了一堆問題,這裏針對我遇到的一些問題提供一些解決方案。html
本人開發環境mac,在啓動ios的時候沒啥大問題,能夠直接啓動,這裏提示一點,由於可能會啓動多個,因此能夠在啓動的時候指定端口,防止衝突react-native run-ios --port=xxxx
可是在啓動安卓的時候出現了一堆問題,一開始使用命令react-native run-android --port=xxxx
的時候,命令行報錯java
$ react-native run-android Scanning folders for symlinks in /Users/ric/myprojs/albums/node_modules (6ms) Starting JS server... Building and installing the app on the device (cd android && ./gradlew installDebug)... FAILURE: Build failed with an exception. * What went wrong: Could not determine java version from '9.0.4'. * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Could not install the app on the device, read the error above for details. Make sure you have an Android emulator running or a device connected and have set up your Android development environment: https://facebook.github.io/react-native/docs/android-setup.html
沒法判斷java版本,這裏查找了一些資料,只要把jdk換成1.8就能夠了,咱們這裏能夠裝多個版本jdk,而後配置環境變量,動態切換版本便可。
在根目錄下建立.bash_profile文件,添加內容並保存node
#設置sdk路徑 export PATH=${PATH}:/Users/stevenzwzhai/Library/Android/sdk/platform-tools/:/Applications/Android\ Studio.app/sdk/platform-tools #設置idk 8 export JAVA_8_HOME=`/usr/libexec/java_home -v 1.8.0` #設置 JDK 9 export JAVA_9_HOME=`/usr/libexec/java_home -v 9.0.4` #默認JDK 9 export JAVA_HOME=$JAVA_9_HOME #alias命令動態切換JDK版本 alias jdk8="export JAVA_HOME=$JAVA_8_HOME" alias jdk9="export JAVA_HOME=$JAVA_9_HOME"
source .bash_profile
配置當即生效。
而後咱們切換jdk版本,命令行直接jdk8便可,繼續運行上面的命令,若是報錯顯示sdk找不到,那麼能夠在項目的android目錄下建立文件local.properties並保存下面內容react
sdk.dir = /Users/stevenzwzhai/Library/Android/sdk
接着咱們再次運行命令,此次不報錯了,可是安卓模擬器紅屏,顯示android
unable to load script from assets 'index.android.bundle'.Make sure your bundle ispackged correctly or you are running a packger server.
這裏,有一些其餘人的解決辦法
1.在android\app\src\main下新建assets文件
2.在項目根目錄下執行react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
3.從新執行react-native run-android
可是我這裏使用卻沒有效果,因此個人應該是端口問題,我發現安卓在啓動程序的時候頭部顯示,10.0.x.x:8081,由於默認是端口8081,可是咱們啓動的時候手動設置成了別的端口,這裏就須要修改模擬器的代理,ip仍是手機的ip,注意不是打開wifi那裏顯示的ip,而是模擬器啓動咱們項目時頭部一條綠色的框框裏的那個,只要reload那個框框就會顯示,而後把端口改爲你啓動項目時的端口就能夠了。
這樣咱們就能夠不用啓動Android studio或者Xcode來啓動項目了。ios