1. 程式人生 > >React Native 安卓 程序運行報錯: React Native version mismatch(轉載)

React Native 安卓 程序運行報錯: React Native version mismatch(轉載)

roi com 想要 情況下 mpi 默認 最新版 問題 face

這個問題已經得到解決,參照stackoverflow上的問題:https://stackoverflow.com/que...
這個問題的原因就處在Android工程中app/build.gradle中,build.gradle中對於 react-native庫的版本的配置默認是這麽寫的:

compile com.facebook.react:react-native:+

這個最後面的 “+” 表示的是使用最新的版本號。
也就是說,我們Android工程中,依賴的React native 的native代碼版本號是使用網絡上發布的最新版本。
這也是我們這個問題產生的根本原因。
按照上面鏈接中的問題的回答,進行如下修改:

compile (com.facebook.react:react-native:0.54.3) { force = true }

再執行 react-native run-android,一切恢復正常。真是個大坑,耽誤了自己一上午的時間。

補充:
報這個錯誤還有一種情況,那就是我們先用react-native run-android運行了其他的不同RN版本的工程,這個時候,如果我們不關閉其他運行中的RN工程的調試進程就在我們想要啟動的工程下面運行react-native run-android 命令的話,也會在安裝的 app中報這個錯誤,也就是對應 stack overflow 鏈接中的票數最多的回答。

總結一下:
產生這個錯誤可能有兩種情況:
第一種情況,也是比較常見的情況是:有其他不同RN版本號的工程以開發模式運行,這時如果我們以 react-native run-android 運行我們自己想要調試的工程的話,會報這個錯誤。
第二種情況,可能相比第一種情況不常見,原因在於可能在我們的開發周期內,RN的Native版本庫不一定會更新。第二種情況就是,我們在Android工程中配置的RN庫版本與 JS工程中配置的RN庫版本不一致。這種情況下只需將 android/app/build.gradle 下的RN庫默認配置改為:

compile (com.facebook.react:react-native:0.54.3
) { force = true } // 0.54.3 處變為自己的JS工程中的相應版本號

問題即可解決。

React Native 安卓 程序運行報錯: React Native version mismatch(轉載)