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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章