1. 程式人生 > >安卓嵌入react native 環境的步驟,Could not get BatchedBridge, make sure your bundle is packaged correctly問題的解決

安卓嵌入react native 環境的步驟,Could not get BatchedBridge, make sure your bundle is packaged correctly問題的解決

    條件:  安卓。

    今天給原生嵌入react native的環境時突然就出現了這個錯誤。點選reload就直接說連不上伺服器。

    先說步驟吧。

    1.   在app/build.gradle中加入依賴。compile'com.facebook.react:react-native:+'

2.   在專案的build.gradle中加入尋找依賴的途徑,這裡是為1中的依賴指明路徑,類似是這樣的

allprojects {
    repositories {
        jcenter()
        mavenLocal()

        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"  //當專案和node_modules不在一起的時候可以使用絕對路徑
        }
    }
}

   3.  在manifest中加入permission和註冊彈框,

    <android:uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <android:uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <android:uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
</pre><pre name="code" class="java">    <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />

     搞定,啟動服務,執行專案,前提是你正確使用了ReactRootView,就能載入檢視了。

    4.  今天莫名其妙出了個Could not get BatchedBridge, make sure your bundle is packaged correctly的錯誤,看了網上很多答案,總結一下呢,其一可能是watchman的問題,其二呢是你真的啟動服務了嗎,好吧,反正我是啟動了,還是報錯,網上還有種說法是直接命令列將bundle輸出到asset下,但是感覺上來說,好像不用自己命令列就能成功的,會自動從伺服器上下載的,靈光一現想到了自己好像沒有新增那一系列的permission..果然,加上就好了。