android嵌套React Native

事实证明按照官网流程是有很多坑的。而且官网默认是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则配置不成功这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值