react native安卓調試(搖一搖和菜單鍵無效)

一個原生的項目要求嵌入react native界面,於是我把打包好的bundle放到assets文件夾下本地加載,運行沒問題,但是沒辦法調試,搖一搖和長按Menu鍵都不行。

檢查代碼,主配置文件中註冊了

        <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />

實例化ReactInsyanceManager的時候也setUseDeveloperSupport(true)了。

 

進到setUseDeveloperSupport這個方法看一看:

/**
   * When {@code true}, developer options such as JS reloading and debugging are enabled.
   * Note you still have to call {@link #showDevOptionsDialog} to show the dev menu,
   * e.g. when the device Menu button is pressed.
   */
  public ReactInstanceManagerBuilder setUseDeveloperSupport(boolean useDeveloperSupport) {
    mUseDeveloperSupport = useDeveloperSupport;
    return this;
  }

註釋裏說了,參數爲true時可以debug。然後還需要調用showDevOptionsDialog。

好的,調用這個喚起debug菜單的showDevOptionsDialog方法,依然沒反應。上網找答案,原來實例化ReactInsyanceManager的時候還需要setCurrentActivity(this)。

 

所以,最終方案:

1.ReactInsyanceManager使用Builder實例化時setCurrentActivity(this).

2.監聽菜單鍵:

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_MENU){
            openDevDialog();
        }else {
            return super.onKeyDown(keyCode, event);
        }
        return true;
    }

    private void openDevDialog() {
        manager.showDevOptionsDialog();
    }

如此操作後當前activity就可以長按菜單鍵喚出debug菜單了,不過別的activity還需要相同的操作才能支持debug。

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