मैं अपने रिएक्टिव नेटिव ऐप को डीबग करने के लिए देव मेनू लाने के लिए एंड्रॉइड एमुलेटर के भीतर एक एंड्रॉइड डिवाइस को "शेक" कैसे करता हूं


201

मैं एक क्रॉस-प्लेटफॉर्म रिएक्ट नेटिव मोबाइल ऐप पर काम कर रहा हूं। मैं सांत्वना लिख ​​रहा हूं। मेरे जैसे ही कथन विकसित होते हैं। जब मैं डिफ़ॉल्ट एंड्रॉइड एमुलेटर में एंड्रॉइड ऐप चला रहा हूं, तो मैं क्रोम में इन लॉगिंग स्टेटमेंट को देखना चाहता हूं। फेसबुक के डॉक्स के अनुसार मुझे केवल "डिवाइस को हिला" करने की आवश्यकता है। एंड्रॉइड एमुलेटर में मैं यह कैसे करूं?

इन-ऐप डेवलपर मेनू का उपयोग करने के लिए:

IOS पर डिवाइस को हिलाएं या सिम्युलेटर में कंट्रोल + shake + z दबाएं। एंड्रॉइड पर डिवाइस को हिलाएं या हार्डवेयर मेनू बटन दबाएं (पुराने> उपकरणों पर उपलब्ध है और अधिकांश एमुलेटर में, उदाहरण के लिए, आप button + m से> हार्डवेयर मेनू बटन क्लिक पर प्रेस कर सकते हैं)

जवाबों:


220

एंड्रॉइड एमुलेटर में अपने ऐप के भीतर Command + MOSX या Ctrl + Mलिनक्स और विंडोज पर प्रेस करें ।


2
अफसोस की बात है कि F2 अब एंड्रॉइड एमुलेटर 2 बीटा में लिनक्स पर काम नहीं करता है। अब क्या?
स्ज़ेपेपैन होल्सिज़ेस्की

7
@ SzczepanHołyszewski मैं जोड़ना चाहूंगा कि, वर्तमान में linux, ctrl + m में डेवलपर मेनू
Ozum Safa

<kbd> f1 </ kbd>, ... <kbd> f12 </ kbd> अधिकांश कंप्यूटरों में प्रेस करने के लिए भ्रामक और कठिन हैं
ericn

223

के साथ एक एमुलेटर में मूल निवासी चल प्रतिक्रिया,
प्रेस ctrl+ m(लिनक्स के लिए, मैं यह विंडोज के लिए एक ही और है लगता है + mमैक ओएस एक्स के लिए) या टर्मिनल में निम्नलिखित चलाएँ:

adb shell input keyevent 82

2
मेरे लिए तुरंत काम नहीं कर रहा। मुझे "सेटिंग" ("...")> सेटिंग> कीबोर्ड शोर्टकट्स को> एमुलेटर कंट्रोल (वर्चुअल डिवाइस नहीं) पर जाने की जरूरत थी, तब यह काम किया।
रायन नेल

ctrl + m linux पर काम नहीं करता है। यह adb शेल कमांड काम करता है, भले ही मैं एक शॉर्टकट पसंद करूं .... मुझे लगता है कि मैं इस कमांड को लॉन्च कर सकता हूं अगर मुझे कोई रास्ता नहीं मिलता है
लॉरेंट

डिवाइस करने के लिए निर्दिष्ट करें adb -s <device id/serial> shell input keyevent 82। एमुलेटर और भौतिक उपकरण दोनों का उपयोग करते समय मैं इसका उपयोग करता हूं।
ग्रैजाइटिस

79

यदि आप एंड्रॉइड स्टूडियो 2.0 के साथ आने वाले नए एमुलेटर का उपयोग कर रहे हैं, तो मेनू कुंजी के लिए कीबोर्ड शॉर्टकट अब जेएमडी की तरह Cmd + M है।

वैकल्पिक रूप से, आप हमेशा adbटर्मिनल में एक मेनू बटन प्रेस का उपयोग करके भेज सकते हैं :

adb shell input keyevent KEYCODE_MENU

यह भी ध्यान दें कि मेनू बटन शॉर्टकट की सख्त आवश्यकता नहीं है, यह सिर्फ ReactActivityजावा वर्ग द्वारा प्रदान किया गया डिफ़ॉल्ट व्यवहार है (जो कि यदि आपने अपना प्रोजेक्ट बनाया है तो डिफ़ॉल्ट रूप से उपयोग किया जाता है react-native init)। यहां से प्रासंगिक कोड यहां onKeyUpहै ReactActivity.java:

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

यदि आप किसी मौजूदा एप्लिकेशन ( यहां प्रलेखन ) में रिएक्ट नेटिव जोड़ रहे हैं और आप उपयोग नहीं कर रहे हैं ReactActivity, तो आपको मेनू बटन को इसी तरह से हुक करना होगा। आप ReactInstanceManager.showDevOptionsDialogकिसी अन्य तंत्र के माध्यम से भी कॉल कर सकते हैं । उदाहरण के लिए, मैं जिस ऐप पर काम कर रहा हूं, मैंने एक देव-ही एक्शन बार मेनू आइटम जोड़ा है जो मेनू लाता है, क्योंकि मुझे लगता है कि भौतिक डिवाइस पर काम करने के दौरान डिवाइस को हिलाने की तुलना में अधिक सुविधाजनक है।


यह मेरे mi4i पर MIUI पर काम नहीं कर रहा है। यह सिर्फ ऐप ट्रे लाता है। क्या कोई और उपाय है? मैं वास्तव में इसे एक एमुलेटर पर चलाना नहीं चाहता, क्योंकि यह मेरे लैपटॉप से ​​गंदगी को
हटा देता है

ऐसा लगता है कि वहाँ अन्य मुद्दों miui के लिए विशिष्ट हैं। अधिसूचना अनुमति को सक्षम करने के बाद अब मैं मेनू प्राप्त करने के लिए डिवाइस को हिला सकता हूं। इस धागे की जाँच करें यदि किसी के पास MIUI github.com/facebook/react-native/issues/2754 के
श्रेयांस

मैंने अपनी पोस्ट को इस बात पर अधिक विस्तार से संपादित किया कि यह सब कैसे काम करता है, जिससे आपको समस्या को ट्रैक करने में मदद मिल सकती है। मेरा सबसे अच्छा अनुमान है कि आप उपयोग नहीं कर रहे हैं ReactActivityऔर अन्य माध्यमों से मेनू बटन को हुक नहीं किया है।
एलन पियर्स

आपकी त्वरित प्रतिक्रिया के लिए धन्यवाद :) हालाँकि यह मुद्दा MIUI अनुमति प्रबंधक के साथ था जिसने मेनू संवाद को प्रदर्शित नहीं होने दिया।
श्रेयांस

1
ReactActivity के बारे में अच्छी टिप। ऐसा लगता है कि कोड को अब ReactActivityDelegate.java में ले जाया गया है
रयान एच।

20

'Ctrl + m' एंड्रॉइड एमुलेटर में रिएक्ट-नेटिव डेवलपर मेनू को लाने के लिए विंडोज के लिए काम करता है

कहीं भी दस्तावेज नहीं मिले। यहाँ मेरा रास्ता मिला, बाकी का अनुमान लगाया ... अच्छा दु: ख।

वैसे: ओपी: आपने उल्लेख नहीं किया कि आप किस ओएस पर थे।


14

लिनक्स के लिए आप तीन डॉट्स पर क्लिक करें ... "एमुलेटर के बगल में, वर्चुअल सेंसर पर" मूव "चेक करें और फिर x, y या z निर्देशांक को जल्दी से स्थानांतरित करने का प्रयास करें।

यहां छवि विवरण दर्ज करें


4
वास्तव में, एकमात्र समाधान जो मेरे लिए काम करता है।
DsCpp

1
आप दिखाए गए विंडो में डिवाइस ग्राफ़िक को भी क्लिक कर सकते हैं और इसे चारों ओर खींच सकते हैं।
ब्रिस्मिथ


8

मैं मैक ओएस पर हूं इसलिए जब मैं कमांड दबाता हूं, तो यह जूमिंग विकल्प को सक्षम करता है। यहाँ मेरा समाधान है

  • कॉन्फ़िगरेशन विंडो खोलें [...] बटन
  • पर जाएं Settingsटैब -> Generalटैब -> Send keyboard shortcuts toक्षेत्र
  • Virtual device"चित्र में दिखाए अनुसार मान बदलें

उसके बाद एमुलेटर पर ध्यान केंद्रित करें और कमांड + एम दबाएं, देव मेनू दिखाई देता है।

एमुलेटर विकल्प -> सेटिंग्स -> सामान्य


4

command + m(cmd + M)मैक पर उपयोग करें । इसके अलावा make sure that you are accessing your application while you try to access the Debug Menuयानी आपका ऐप चालू होना चाहिए अन्यथा Cmd + Mसामान्य फोन मेनू को वापस कर देगा।


4

जैसे ही देशी ऐप्स विकसित होते हैं, हम टर्मिनल के साथ खेलते हैं

इसलिए मैंने package.json फ़ाइल में स्क्रिप्ट में एक स्क्रिप्ट जोड़ी

"मेनू": "एडीबी शेल इनपुट कीवेंट 82"

और मैंने $ यार्न मेनू मारा

एमुलेटर पर प्रदर्शित होने वाले मेनू के लिए यह ADB के माध्यम से एम्यूलेटर के लिए कीकोड 82 को इष्टतम तरीके से आगे नहीं बढ़ाएगा, लेकिन मुझे यह पसंद है और इसे साझा करना अच्छा लगता है।

यहां छवि विवरण दर्ज करें


2

linux ctrl + m पर काम करना चाहिए लेकिन यह समस्या को हल करने के लिए नहीं है (...) (इसके विस्तारित नियंत्रण) पर क्लिक करें और फिर उस विंडो को बंद करें। ctrl + m द्वारा आप मेनू खोल सकते हैं। फिर:

  1. (...) (इसके विस्तारित नियंत्रण) पर क्लिक करें

  2. विस्तारित नियंत्रण

  3. Ctrl + M


1

यह प्रत्यक्ष समाधान नहीं हो सकता है, लेकिन मैंने एक लीव बनाया है जो आपको डिवेलप करने के लिए शेक के बजाय 3 उंगलियां छूने की अनुमति देता है , जब डेवलपमेंट मोड में

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

आपको केवल अपने ऐप को अंदर लपेटना होगा:

'प्रतिक्रिया-देशी-देव-मेनू-ऑन-टच' से DevMenuOnTouch का आयात करें; // या: आयात {DevMenuOnTouch} 'प्रतिक्रिया-देशी-देव-मेनू-ऑन-टच' से

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

यह वास्तव में उपयोगी है जब आपको वास्तविक डिवाइस पर डीबग करना पड़ता है और आपके पास आपके बगल में बैठे सहकर्मी होते हैं।


1

मैं एक पर कोशिश कर रहा था रिहाई के माध्यम से निर्माण adb install -r -d <app-release>.apk🤦

सुनिश्चित करें कि आप डिबग बिल्ड चला रहे हैं , फिर मेनू शॉर्टकट या सीएलआई के माध्यम से काम करेगा।


-1

विंडोज़ लैपटॉप के लिए fn Key + Control + m

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.