事实证明按照官网流程是有很多坑的。而且官网默认是Mac环境下。下面我就把遇到的坑都填上。
填坑开始
1新建原生android项目,命令行打开根目录
npm init 回车
package nam( 1.0.0) 回车 version 后 到version就卡主不动了一直回车没反应
这个应该是Windows系统的问题,换个shell可以解决,比如cmder、git bash。 本人使用gitbash解决
启动闪退
java.lang.RuntimeException: An error occured while executing doInBackground()
Caused by: java.lang.UnsatisfiedLinkError: could find DSO to load: libreactnativejni.so
打开应用直接闪退
解决方案:找不到so文件错误,在gradle文件的defaultConfig标签下添加如下代码:
ndk {
abiFilters "armeabi-v7a", "x86"
}
如果此时继续运行,可能报以下错误
2.Error: NDK integration is deprecated in the current plugin
白屏
----------
com.facebook.react.bridge.JSExecutionException: ReferenceError: Can't find variable: __fbBatchedBridge (<unknown file>:1)
解决步骤:
1、到AwesomeProject\Android\app\src\main\目录下新建文件夹assets
2、到AwesomeProject目录下执行命令:
React-native bundle –platform android –entry-file index.android.js –bundle-output android/app/src/main/assets/index.android.bundle –dev false
注意上述路径,是你自己的路径
3、执行成功后发现assets会新增文件,index.android.bundle
4、重新运行即可,问题解决
![这里写图片描述](https://img-blog.csdn.net/20170708022445181?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvVGFvb0xlZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
此时重新load
![这里写图片描述](https://img-blog.csdn.net/20170708023924250?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvVGFvb0xlZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
可能仍然报错
com.facebook.react.bridge.JSExecutionException: TypeError: undefined is not a function (evaluating ‘(bridgeConfig.remoteModuleConfig||[]).forEach’) (http://192.168.0.122:8081/index.android.bundle?platform=android&dev=true&hot=false:7735)
“`
原因:
node_modules跟工程在同一级目录,但是maven搜索的路径不是同一级路径。maven用来保证react native 使用node-module里的新版本。配置成功的标志就是ExternalLibraries里面react-native的版本是新版本。若为0.20.1则配置不成功