2015-03-17 14 views
7

मैं `डोकर कंटेनर के अंदर एंड्रॉयड एमुलेटर शुरू करने की कोशिश, लेकिन मैं त्रुटि मिलती है:एंड्रॉयड एमुलेटर

[email protected]:~/android-sdk-linux/tools# ./emulator    
ERROR: 32-bit Linux Android emulator binaries are DEPRECATED, to use them 
     you will have to do at least one of the following: 

     - Use the '-force-32bit' option when invoking 'emulator'. 
     - Set ANDROID_EMULATOR_FORCE_32BIT to 'true' in your environment. 

     Either one will allow you to use the 32-bit binaries, but please be 
     aware that these will disappear in a future Android SDK release. 
     Consider moving to a 64-bit Linux system before that happens. 

लेकिन कंटेनर के अंदर ओएस है (uname -a)

Ubuntu SMP Tue Mar 10 20:06:50 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

और मैन्युअल रूप से emulatox64-x86 ठीक काम करता है:

android-sdk-linux/tools# ./emulator64-x86 
emulator: ERROR: You did not provide the name of an Android Virtual Device 
with the '-avd <name>' option. Read -help-avd for more information. 

If you *really* want to *NOT* run an AVD, consider using '-data <file>' 
to specify a data partition image file (I hope you know what you're doing). 

I एक प्रतीकात्मक कड़ी कर सकते हैं - लेकिन मुझे लगता है कि यह एक अच्छा समाधान नहीं है क्योंकि वहाँ

इसके अलावा इस एमुलेटर जेनकींस जो ऊपर

UPDATED उल्लेख कंटेनर में रहते द्वारा शुरू किया जाना चाहिए अनुकरण करने के लिए अलग अलग वास्तुकला हो सकता है: के रूप में @ user2915097 सुझाव: [email protected]:/# file /bin/bash /bin/bash: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24

+0

'एमुलेटर' अजीब अभिनय के अलावा, क्या कोई कारण है कि 'emulator64-x86' का उपयोग न करें? (जहां तक ​​मैं देख सकता हूं मुझे लगता है कि मेरे लिए दिन बचाता है और मैंने पहले आपके प्रश्न में यह समाधान नहीं देखा था।) – Giszmo

+1

मुझे लगता है कि केवल कारण यह है कि मुझे नहीं पता कि वास्तव में 'एमुलेटर' निष्पादन योग्य क्या है। हो सकता है कि यह वास्तविक अनुकरणकर्ताओं या कुछ और चीज़ों के लिए कुछ झंडे जोड़ता है, इसलिए वास्तविक प्रोग्राम के बजाय मैं सिमुलिंक को जोड़ना ** ** खतरनाक हो सकता है ** फिर भी यह समाधान – Art

+0

है, मैं अब भी इस समस्या में भाग रहा हूं, आपने क्या किया अपना समाधान ढूंढें? – mawalker

उत्तर

0

आप एक प्रतीकात्मक कड़ी कर सकते हैं - लेकिन मुझे लगता है कि यह एक अच्छा समाधान नहीं है क्योंकि वहाँ के रूप में सिर्फ एक FYI करें

0

निकालने से https://github.com/docker/docker/issues/611

uname हमेशा आप 64 बिट्स बता देंगे। उदा। देखें फाइल सिस्टम के असली आर्क को देखने के लिए "फ़ाइल/बिन/sh"।

+0

'रूट @ 686d602e6ffa:/# फ़ाइल/बिन/बाश ' '/bin/bash: ईएलएफ 64-बिट एलएसबी निष्पादन योग्य, x86 -64, संस्करण 1 (SysV), गतिशील रूप से जुड़े हुए (साझा का उपयोग करता है libs), जीएनयू/लिनक्स 2.6.24 के लिए, BuildID [SHA1] = 54967822da027467f21e65a1eac7576dec7dd821, stripped' 'जड़ @ 686d602e6ffa: ~/Android-SDK-linux/उपकरण # फ़ाइल emulator' 'एमुलेटर: ELF 32-बिट LSB निष्पादन, इंटेल 80386, संस्करण 1 (SysV), गतिशील रूप से जुड़े हुए (साझा libs का उपयोग करता है), जीएनयू/लिनक्स 2.6.15 के लिए, stripped' ही मैं मेजबान पीसी पर (जो शुद्ध x64 है) और सब ठीक है – Art

3

अनुकरण करने के लिए अलग अलग वास्तुकला हो सकता है: मैं FROM ubuntu:16.04 के बंद और अंत में हल आधारित डोकर पर इस में भाग इसे "फ़ाइल" apt-get install file

स्पष्ट रूप से एमुलेटर $ SHELL देखने के लिए file का उपयोग करता है और यदि इसमें "x86_64" नहीं लगता है तो यह 32 बिट है।

संबंधित मुद्दे