codepush3之Android原生引用集成codepush

codepush热更新
codepush2之配置自己的服务器
codepush4之linux下配置自己服务器
其实原生集成rn在集成codepush与新建rn项目集成codepush最主要的区别是node_modules的路径发生变化了另外应用也不再是一个reactApplication了。大多数错误都是这两点引起的。
这是我的文件目录
androidtoRN文件目录.png
1:项目路径下命令行输入yarn add react-native-code-push
2:不需要配置settings.gradle

settings.gradle:
include ':react-native-code-push'
project(':react-native-code-push').projectDir = new File(rootProject.projectDir, 'node_modules/react-native-code-push/android/app')

build.gradle:
apply from: "../node_modules/react-native/react.gradle"
apply from: "../node_modules/react-native-code-push/android/codepush.gradle"

不需要

dependencies {
    compile project(':react-native-code-push')
}

否则会报错如下
buildbug.png
如果遇到这个错误请参考
3:修改codepush.gradle的35行node_modules路径
codepushgradle.png

4:修改react.gradle的14行reactRoot路径
reactbuild.png

5:node_modules/react-native-code-push/android/app
codepushpackage.png
将codepush包和codepush.gradle复制到自己的项目路径下然后修改路径包名等错误信息。
如图所示:
fixbug.png
如果不复制codepush,使用node_modules里面的会报错如下:
codepushApplicationNOTFound.png
因为这是一个原生应用并不是一个react native的应用。

6:复制过后运行还是会报错,因为缺少一个jar
缺少jar.png
自行下载然后放入libs里面即可。
7:修改android/app/build.gradle

apply from: "../node_modules/react-native/react.gradle"
apply from: "codepush.gradle"

8:运行然后成功
如图:
codepushsuccess.png
androidtoRN.gif

代码仅供参考:
https://github.com/wuyunqiang/AndroidToRN
参考:
https://github.com/Microsoft/react-native-code-push/issues/1133
https://github.com/Microsoft/react-native-code-push/issues/1128
https://github.com/wuyunqiang/ReactNativeUtil/issues/19

猜你喜欢

转载自blog.csdn.net/u014041033/article/details/79004351