Androidエミュレーター内でAndroidデバイスを「シェイク」して、React Nativeアプリをデバッグするための開発メニューを表示する方法


201

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

アプリ内デベロッパーメニューにアクセスするには:

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

回答:


220

Android Emulatorのアプリ内で、Command + MOSXまたはCtrl + MLinuxとWindowsを押します。


2
悲しいことに、F2はAndroid Emulator 2ベータ版のLinuxでは動作しなくなりました。今何?
SzczepanHołyszewski2016年

7
@SzczepanHołyszewski追加したいのですが、現在Linuxでは、ctrl + mで開発者メニューが表示されます
Ozum Safa

<kbd> f1 </ kbd>、... <kbd> f12 </ kbd>は、ほとんどのコンピュータで混乱して押すのが難しい
ericn

223

エミュレーターでReact Nativeが実行されている状態で、+ (Linuxの場合、Windowsでも+ Mac OS X でも同じだと思います)を
押すか、ターミナルで次のコマンドを実行します。 ctrlmm

adb shell input keyevent 82

2
すぐに私のために働いていません。「設定」(「...」)>設定>キーボードショートカットの送信先>エミュレータコントロール(仮想デバイスではない)に移動する必要がありましたが、機能しました。
Ryan Knell 2017年

ctrl + mはLinuxでは機能しません。このadbシェルコマンドは、ショートカットを使用する場合でも機能します。他の方法が見つからない場合は、このコマンドを起動するコマンドを作成できます
Laurent

デバイスを指定するには、を実行しますadb -s <device id/serial> shell input keyevent 82。エミュレーターと物理デバイスの両方を使用するときにこれを使用します。
グリザイツ

79

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

または、adbターミナルで使用するメニューボタンを常に送信することもできます。

adb shell input keyevent KEYCODE_MENU

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

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

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


これは私のmi4iのMIUIでは機能しません。アプリトレイが表示されるだけです。別の解決策はありますか?私は本当にそれをエミュレータで実行したくありません。それは私のラップトップのたわごとを遅くするからです
Shreyans

miuiに固有の問題が他にもあるようです。通知許可を有効にした後、デバイスをシェイクしてメニューを取得できます。他の誰かがMIUI github.com/facebook/react-native/issues/2754で
Shreyans

私は自分の投稿を編集して、これらすべての機能の詳細を追加しました。これは、問題の追跡に役立つ場合があります。私の推測では、あなたは使用ReactActivityしておらず、他の方法でメニューボタンを接続していません。
Alan Pierce

迅速な対応に感謝します:)問題は、メニューダイアログを表示させないMIUIアクセス許可マネージャーにありました。
Shreyans

1
ReactActivityに関するすばらしいヒント。そのコードはReactActivityDelegate.javaに移動されたようです
Ryan H.

20

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

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

ちなみにOP:使用しているOSについては言及していません。


14

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

ここに画像の説明を入力してください


4
実際、それが私にとって有効な唯一の解決策でした。
DsCpp 2018

1
表示されたウィンドウでデバイスのグラフィックをクリックしてドラッグすることもできます。
brismith


8

私はMac OSを使用しているので、コマンドを押すとズームオプションが有効になります。これが私の解決策です

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

エミュレータにフォーカスしてコマンド+ Mキーを押すと、開発メニューが表示されます。

エミュレータオプション->設定->一般


4

command + m(cmd + M)MACで使用します。またmake sure that you are accessing your application while you try to access the Debug Menu、アプリが実行されている必要がありCmd + Mます。そうでない場合、通常の通常の電話メニューが返されます。


4

反応ネイティブアプリを開発している間、私たちはターミナルで遊んでいます

そのため、package.jsonファイルのスクリプトにスクリプトを追加しました

"menu": "adb shell input keyevent 82"

私は$糸メニューを押します

メニューがエミュレーターに表示されるようにするには、キーコード82をADB経由でエミュレーターに転送しますが、最適な方法ではありませんが、気に入って共有したいと思いました。

ここに画像の説明を入力してください


2

Linuxではctrl + mは機能するはずですが、問題を解決するには(...)(その拡張コントロール)をクリックしてからウィンドウを閉じます。これで、ctrl + mでメニューを開くことができます。次に:

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

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

  3. Ctrl + M


1

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

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

アプリを内部にラップするだけです。

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

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

実際のデバイスでデバッグする必要があり、隣に同僚がいる場合に、これは非常に便利です。


1

私はviaを介してリリースビルドをadb install -r -d <app-release>.apk試みていました

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


-1

Windowsラップトップの場合fnキー+ Ctrl + m

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.