web-dev-qa-db-ja.com

Androidエミュレータ内でAndroidデバイスを「シェイク」してdevメニューを表示し、React Nativeアプリをデバッグするにはどうすればよいですか。

私はクロスプラットフォームのReact Nativeモバイルアプリに取り組んでいます。開発中にconsole.logステートメントを書いています。デフォルトのAndroidエミュレータでAndroidアプリを実行している間に、これらのログ記録ステートメントをChromeで表示する必要があります。によると Facebookのドキュメント 私はただ「デバイスを振る」必要があります。 Androidエミュレータでこれを行うにはどうすればよいですか?

アプリ内開発者メニューにアクセスするには:

IOSの場合は、デバイスを振るか、シミュレータのCtrl +⌘+ zを押します。 Androidでは、デバイスを振るか、ハードウェアメニューボタンを押します(古いデバイスやほとんどのエミュレータで利用できます。たとえば、ジェノモーションでは、⌘+ mを押して、ハードウェアメニューボタンのクリックをシミュレートできます)。

163
Austin

Android Emulatorのアプリ内で、OSXの場合はCommand + M、LinuxおよびWindowsの場合はCtrl + Mを押します。

153
Ryan McDermott

エミュレータでReact Nativeが動作している状態で、
押す ctrl+m (Linuxでは、Windowsでも同じです。 +m Mac OS Xの場合)、または端末で次のコマンドを実行します。

adb Shell input keyevent 82
195
ericn

Android Studio 2.0に付属の新しいエミュレータを使用している場合は、Genymotionの場合と同様に、メニューキーのキーボードショートカットはCmd + Mになりました。

あるいは、端末でadbを使用して常にメニューボタンを押すこともできます。

adb Shell input keyevent KEYCODE_MENU

また、メニューボタンのショートカットは厳密な要件ではないことに注意してください。これは、ReactActivityというJavaクラスが提供するデフォルトの動作です(プロジェクトをreact-native initで作成した場合はデフォルトで使用されます)。これがReactActivity.JavaonKeyUpからの関連コードです。

if (keyCode == KeyEvent.KEYCODE_MENU) {
  mReactInstanceManager.showDevOptionsDialog();
  return true;
}

既存のアプリにReact Nativeを追加する場合( のドキュメントはこちら )、ReactActivityを使用していない場合は、メニューボタンをフックする必要があります。同様の方法で起動します。他のメカニズムを介してReactInstanceManager.showDevOptionsDialogを呼び出すこともできます。たとえば、私が取り組んでいるアプリでは、物理デバイスを操作するときにデバイスを振るよりも便利なので、メニューを表示する開発者専用のアクションバーメニュー項目を追加しました。

74
Alan Pierce

'Ctrl + m'は、AndroidエミュレータのWindowsで動作し、React-Native開発者メニューを表示します。

それがどこにも文書化されているのが見つかりませんでした。ここに私の道を見つけた、残りを推測した...良い悲しみ。

ちなみに:OP:自分がどんなOSを使っているのか言及していませんでした。

21
spechter

OSXの 'Command + M'は私のために働いています。

9
VolkanSahin45

Linuxの場合は、エミュレータの横にある3つのドット「...」をクリックし、仮想センサーで「移動」をチェックしてから、x、y、またはz座標をすばやく移動します。

enter image description here

7

MACではcommand + m(cmd + M)を使用してください。またmake sure that you are accessing your application while you try to access the Debug Menui.eです。それ以外の場合はCmd + Mは通常の通常の電話メニューを返します。

4
Awesome

私はMac OSを使っているのでCommandを押すとズーミングオプションが有効になります。これが私の解決策です

  • 設定ウィンドウを開く[...]ボタン
  • Settingsタブに移動 - > Generalタブ - > Send keyboard shortcuts toフィールド
  • 図のように値をVirtual device"に変更します

エミュレータに焦点を合わせてCommand + Mを押すと、devメニューが表示されます。

Emulator Option -> Settings -> General

3
Ponleu

linuxの場合Ctrl + Mキーは動作するはずですが、それは問題を解決するためのものではありません(...)(その拡張コントロール)をクリックし、ウィンドウを閉じます。Ctrl + Mキーでメニューを開くことができます。その後:

  1. (...)をクリックします(その拡張コントロール)

  2. 拡張コントロールを閉じる

  3. ctrl + M

1

それは直接的な解決策ではないかもしれませんが、開発モードでは シェイクの代わりに3本の指でタッチする を使って開発メニューを開くことができるlibを作成しました。

https://github.com/pie6k/react-native-dev-menu-on-touch

あなたはあなたのアプリを中にラップするだけでよい:

devMenuOnTouchを「react-native-dev-menu-on-touch」からインポートします。 //または: 'react-native-dev-menu-on-touch'から{DevMenuOnTouch}をインポート

class YourRootApp extends Component {
  render() {
    return (
      <DevMenuOnTouch>
        <YourApp />
      </DevMenuOnTouch>
    );
  }
}

実際のデバイス上でデバッグしなければならず、同僚があなたの隣に座っているとき、それは本当に役に立ちます。

1
pie6k

ウィンドウズラップトップの場合fn Key + Control + m

0
UMUT

私はadb install -r -d <app-release>.apk ????を介してreleaseビルドを試みました。

debugビルドを実行していることを確認すると、ショートカットまたはCLIを介してメニューが機能します。

0
Leo