如何从源手动构建反应原生的Android库?

时间:2016-05-09 04:49:44

标签: react-native

是否可以手动从源构建反应原生库?指南http://facebook.github.io/react-native/docs/android-building-from-source.html告诉我修改gradle文件,但这与rnpm不兼容(链接新库)。我从https://github.com/facebook/react-native/blob/master/circle.yml复制了一些命令并在node_modules/react-native目录中运行(从源代码安装):

buck fetch ReactAndroid/src/test/java/com/facebook/react/modules
buck fetch ReactAndroid/src/main/java/com/facebook/react
buck fetch ReactAndroid/src/main/java/com/facebook/react/shell
buck fetch ReactAndroid/src/test/...
buck fetch ReactAndroid/src/androidTest/...
./gradlew :ReactAndroid:downloadBoost :ReactAndroid:downloadDoubleConversion :ReactAndroid:downloadFolly :ReactAndroid:downloadGlog
CIRCLE_BRANCH=`git rev-parse --abbrev-ref HEAD` node ./scripts/publish-npm.js

然后使用react-native run-android成功编译项目,但运行失败并显示消息:

  

无法获取本机呼叫队列:桥接配置不可用。这不应该是可能的。恭喜。 (见下文)

如何修复我的编译脚本?

enter image description here

更新 解决了这个问题,原因是我的项目是由旧版本的react-native创建的,我用最新生成的代替了一些gradle配置,并且工作正常。

错误的行是apply from: "react.gradle",替换为apply from: "../../node_modules/react-native/react.gradle"

3 个答案:

答案 0 :(得分:0)

可能您必须手动链接第三方库,而不是使用rnpm。也可以使用Android Studio进行编译,如RN docs中所述。

答案 1 :(得分:0)

这似乎是一个开放的反应原生问题。请参阅this

答案 2 :(得分:0)

使用adb reverse

  1. 运行adb devices命令检查设备是否已连接。
  2. 运行adb reverse tcp:8081 tcp:8081
  3. 运行react-native run-android
  4. 将您的应用配置为通过Wi-Fi连接到本地开发服务器

    1. 确保应用和笔记本电脑在同一个网络上。
    2. 打开您的react-native app。
    3. 你会看到一个红色的屏幕。
    4. 摇动设备。
    5. 转到开发设置 - >调试设备的服务器主机。
    6. 输入您的机器IP地址。例如:ipaddress:8081
    7. 返回开发人员菜单并点击重新加载Js
    8. 阅读更多

      1. Couldn't get the native call queue: bridge configuration isn't available
      2. Prerequisite: USB Debugging