Ubuntu - ข้อผิดพลาด: สร้างการ์ด SD ไม่สำเร็จ


84

ฉันเห็นโพสต์มากมายเกี่ยวกับการเขียนลงในการ์ด SD แต่ฉันเชื่อว่าปัญหาของฉันแตกต่างกัน ฉันไม่สามารถสร้างการ์ด SD ในระหว่างขั้นตอนการสร้าง AVD

ตอนแรกฉันพยายามใช้ Android SDK และ AVD Manager เพื่อทำสิ่งนี้โดยเลือก
ชื่อ : my_avd
Target : Android 2.2 - API ระดับ 8
การ์ด SD : ขนาด: 1024 MiB
Skin : Built-In: Default (HVGA)
ฮาร์ดแวร์ : คุณสมบัติ: Abstracted LCD ความหนาแน่นค่า: 160

หน้าต่างจะปรากฏขึ้นพร้อมข้อความ:
"ผลลัพธ์ของการสร้าง AVD 'my_avd':
ข้อผิดพลาด: ไม่สามารถสร้างการ์ด SD ได้"

ฉันพยายามทำซ้ำขั้นตอนจากบรรทัดคำสั่งได้รับข้อผิดพลาดที่คล้ายกัน:

alex@alex-desktop:~$ android create avd -n my_avd -t 1 -c 1024M
Android 2.2 is a basic Android platform.
Do you wish to create a custom hardware profile [no]no
Error: Failed to create the SD card.

การพยายามทำตามคำแนะนำในการใช้ mksdcard นั้นไม่ได้ผลเท่ากัน ฉันคิดว่าการขาดประสบการณ์พื้นฐานของลินุกซ์อาจทำให้ฉันมีปัญหาที่นี่ เมื่อฉันพยายามใช้ mksdcard มันรายงานว่าไม่พบไฟล์หรือไดเร็กทอรี เครื่องมือ mksdcard มีให้ใช้ใน linux หรือไม่

alex@alex-desktop:~$ mksdcard 1024M ./sdcard.iso
bash: /home/alex/android-sdk-linux_x86/tools/mksdcard: No such file or directory
alex@alex-desktop:~$ sudo android create avd -n my_avd -t 1 -c 1024M

ฉันได้เพิ่มไดเร็กทอรีเครื่องมือ android ไปยังตัวแปร PATH ของฉันแล้ว แต่ฉันรู้สึกว่ามีบางอย่างที่หายไป อาจเป็นสิทธิ์การเข้าถึงบางประเภท?

การพยายามรันคำสั่ง android ด้วย sudo ดูเหมือนจะไม่ช่วยอะไรเช่นกัน:

alex@alex-desktop:~/android-sdk-linux_x86/tools$ sudo ./android create avd -n my_avd -t 1 -c 1024M
Android 2.2 is a basic Android platform.
Do you wish to create a custom hardware profile [no]no
Error: Failed to create the SD card.

ฉันลองติดตั้ง Eclipse และปลั๊กอิน ADT และเรียกใช้ตัวจัดการจากที่นั่นโดยไม่มีประโยชน์ คำแนะนำใด ๆ ที่จะได้รับการชื่นชมมากที่สุด คำเตือนขั้นสูงว่าฉันค่อนข้างเป็นผู้ใช้ลินุกซ์มือใหม่ดังนั้นแม้ว่าจะดูเหมือนเป็นเรื่องง่ายที่จะตรวจสอบ แต่ฉันก็ยังพลาด


@ Alex Pritchard: คุณอาจไม่จำเป็นต้องใช้การ์ด SD ปลอม 1024M ลองใช้ 32M แทนและดูว่าคุณมีโชคดีขึ้นหรือไม่
CommonsWare

@CommonsWare อนิจจาการ์ด SD 32M ยังไม่สามารถสร้างได้ :(
Alex Pritchard

@ อเล็กซ์พริตชาร์ด: ค่อนข้างแปลก ภาพถูกสร้างขึ้นในไดเร็กทอรีเดียวกับ AVD ที่เหลือ ( ~/.android/avd/whateveryoucalledit/) ดังนั้นฉันจึงไม่เข้าใจว่าคุณจะสร้าง AVD ได้อย่างไร แต่ไม่ใช่ AVD ด้วยการ์ด SD
CommonsWare

@CommonsWare ฉันได้อ่านมากขึ้นและคิดว่าฉันอาจจะพบบางสิ่งบางอย่าง ฉันสงสัยว่าอาจมีปัญหาบางอย่างเนื่องจากฉันใช้การติดตั้ง linux 64 บิตและอาจต้องติดตั้ง ia32-libs ฉันจะลองสิ่งนี้เมื่อฉันกลับบ้านและดูว่ามันช่วยได้ไหม
Alex Pritchard

@ อเล็กซ์พริตชาร์ด: ใช่ฉันเชื่อว่าคุณต้องการสิ่งนั้น น่าแปลกใจที่มันดำเนินไปโดยไม่มีพวกเขาจริงๆ ฉันต้องผ่านการหมุนเพื่อให้ Android ทำงานบนการตั้งค่า Ubuntu 64 บิตแม้ว่าจะนานพอที่ฉันจะลืมรายละเอียด
CommonsWare

คำตอบ:


101

ก็เลยพบปัญหา ฉันใช้การติดตั้ง Linux 64 บิตซึ่งไม่ได้ติดตั้งแพ็คเกจ ia32-libs ตามค่าเริ่มต้น ยูทิลิตี้ mksdcard จะไม่ทำงานหากไม่มีแพ็คเกจนี้ หลังจากติดตั้งแล้วฉันสามารถสร้าง AVD ได้โดยไม่มีปัญหาโดยใช้ตัวจัดการ AVD


1
ขอบคุณ ubuntu 12.04 x64 มันแก้ปัญหาได้ ฉันเพียง แต่พูดว่าสิ่งเหล่านี้ ia32-libs มี 260mb ประมาณ
yetanothercoder

43
ใช่ ฉันพบวิธีที่ไม่มีแพ็คเกจการพึ่งพาที่น่ากลัวทั้งหมด 240 ชุด! แทนการติดตั้งia32-libs libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386ขอชื่นชมผู้ชายคนนี้ที่ช่วยฉัน (และหวังว่าคนอื่น ๆ ) คอมพิวเตอร์ของฉันจากขยะทั้งหมด: stackoverflow.com/a/10473415/998772 PS ฉันใช้ Linux Mint 13
pavel_kazlou

4
บน Fedoradnf install glibc.i686 libstdc++.i686
Dominic Cleal

ขอขอบคุณ. ฉันใช้ Ubuntu 14.04 LTS amd และมันแก้ปัญหาได้ ฉันติดตั้งแพ็คเกจแยกต่างหากเช่น @pavel_kazlou แนะนำ
Joao Polo

1
@nimrodm ฉันรู้สึกประหลาดใจอย่างต่อเนื่องกับกิจกรรมในโพสต์นี้
Alex Pritchard

80

บน Ubuntu 16.04 LTS x64 โดยใช้ Android Studio 2.1 (ทดสอบบน 2.3.3 ด้วย) เรียกใช้จากเทอร์มินัล:

sudo apt-get install lib32stdc++6

ฉันได้ติดตั้ง SDK ด้วยตนเองแล้ว (ไม่มี Android Studio) และสิ่งนี้ก็ใช้ได้ผล
CTodea

1
นอกจากนั้นฉันต้องเปลี่ยนชื่อ ~ / Android / Sdk / emulator / lib64 / libstdc ++ / libstdc ++ so.6 และ libstdc ++ so.6.0.18 เป็นอย่างอื่นเพื่อให้โปรแกรมจำลองทำงาน ฉันทำได้แค่ทำให้มันทำงานได้โดยไม่ต้องใช้ opengl ยาก --------------- ./emulator @ Nexus_4_API_23 ล้มเหลวในการสร้าง getGLES2ExtensionString ที่วาดได้: ไม่สามารถสร้าง GLES 2.x Pbuffer ได้! ไม่สามารถรับสตริงส่วนขยาย GLES 2.x! ไม่สามารถเริ่มต้นโปรแกรมจำลอง framebuffer ที่จำลองได้: ข้อผิดพลาด: ไม่สามารถเริ่มต้นการจำลอง OpenglES ได้ให้ใช้ '-gpu off' เพื่อปิดใช้งาน
Francisco Junior

1
บิงโก Ubuntu 17.04
piratemurray

22

ฉันมีข้อผิดพลาดเดียวกันกับคุณและฉันเพิ่งแก้ไขดังนั้นอาจช่วยคุณได้ (แม้ว่าฉันไม่คิดว่าข้อผิดพลาดของคุณเกิดจากปัญหาเดียวกันกับฉัน)

ฉันพบว่าเครื่องมือทั้งหมดใน ../tools ไม่มีสิทธิ์ยกเว้นฉันจึงใช้

chmod -R 777 ../tools

จากบรรทัดคำสั่งและในที่สุดก็ใช้งานได้


1
ขอขอบคุณที่ร่วมให้คำตอบ Stack Overflow มีการจัดรูปแบบเพื่อเพิ่มความสามารถในการอ่านคำตอบของคุณ คุณสามารถใช้การจัดรูปแบบโค้ดเพื่อระบุคำสั่งเชลล์และตั้งค่าให้แตกต่างจากข้อความอื่นของคุณ
this.josh

ใช้งานได้ แต่ส่งผล.txtให้.xmlไฟล์และอื่น ๆ มีสิทธิ์ในการปฏิบัติการ ... จะดีที่ได้ทราบว่าแต่ละไฟล์ที่เกี่ยวข้อง
funkybro

10

ตามที่คนอื่นเขียนไว้แล้วปัญหาคือ Linux distro ของคุณเป็น64 บิตและในปัจจุบันAndroid Virtual Device ( AVD ) ต้องการไลบรารีx86เพื่อให้ทำงานได้อย่างถูกต้อง

มีคนแนะนำให้ติดตั้งia32-libs อย่างไรก็ตามในUbuntu 14.04 LTSคุณจะไม่พบไลบรารีนี้ ผมแก้ไขได้โดยใช้ libs ทางเลือกเหล่านี้: lib32z1 , lib32ncurses5 , lib32bz2-1.0และlib32stdc ++

sudo apt-get update
sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++

3
สิ่งเดียวที่ฉันต้องการคือ lib32stdc ++ 6
Big McLargeHuge

6

ฉันเพิ่งเจอปัญหาเดียวกัน ไม่มีเครื่องมือ SDK ใดที่จะทำงานบน Ubuntu 64 บิตโดยไม่ต้องติดตั้ง ia32-libs (ตัวอย่าง: sudo apt-get install ia32-libs)


5

ในระบบปฏิบัติการพื้นฐานและอูบุนตูวิธีแก้ปัญหาคือการติดตั้งแพ็คเกจต่อไปนี้

sudo apt-get install lib32ncurses5 lib32z1
sudo apt-get install libgcc1:i386

สิ่งนี้ใช้ได้กับฉันใน Kubuntu 17.04 แต่ยังต้องลบ libstdc ++
Avamander

4
alex@alex-desktop:~$ mksdcard 1024M ./sdcard.iso
bash: /home/alex/android-sdk-linux_x86/tools/mksdcard: No such file or directory
alex@alex-desktop:~$ sudo android create avd -n my_avd -t 1 -c 1024M

ฉันพบปัญหานี้และฉันหาวิธีก่อน:

cd /home/alex/android-sdk-linux_x86/tools/

จากนั้นเขียนสิ่งนี้:

sudo chmod 755 mksdcard
mksdcard 1024M ./sdcard.iso
sudo android create avd -n my_avd -t 1 -c 1024M

มันควรจะทำงาน :)


4

หากคุณใช้ Kali, Debian Jessie (หรือ Ubuntu 13.10+) ให้ลอง

sudo apt-get ติดตั้ง lib32stdc ++ 6

แทนที่จะเป็น ia32-libs ที่กล่าวถึงข้างต้น


4
sudo apt-get install lib32stdc++6

หลังจากนี้คุณอาจได้รับข้อผิดพลาดดังต่อไปนี้

Cannot launch AVD in emulator.
Output:
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
X Error of failed request:  GLXBadContext
  Major opcode of failed request:  154 (GLX)
  Minor opcode of failed request:  6 (X_GLXIsDirect)
  Serial number of failed request:  49
  Current serial number in output stream:  48
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
X Error of failed request:  GLXBadContext
  Major opcode of failed request:  154 (GLX)
  Minor opcode of failed request:  6 (X_GLXIsDirect)
  Serial number of failed request:  49
  Current serial number in output stream:  48
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
emulator: WARNING: VM heap size set below hardware specified minimum of 228MB
X Error of failed request:  BadValue (integer parameter out of range for operation)
emulator: WARNING: Setting VM heap size to 384MB
  Major opcode of failed request:  154 (GLX)
  Minor opcode of failed request:  24 (X_GLXCreateNewContext)
  Value in failed request:  0x0
  Serial number of failed request:  33
  Current serial number in output stream:  34
QObject::~QObject: Timers cannot be stopped from another thread

ใช้ 3 คำสั่งนี้เพื่อแก้ปัญหา

mv ~/Android/Sdk/tools/lib64/libstdc++/libstdc++.so.6{,.bak}
mv ~/Android/Sdk/tools/lib64/libstdc++/libstdc++.so.6.0.18{,.bak}
ln -s /usr/lib/libstdc++.so  ~/Android/Sdk/tools/lib64/libstdc++/**

3

มีปัญหานี้เช่นกันและหลังจากติดตั้งแพ็คเกจ i386 ฉันสามารถสร้างการ์ด SD สำหรับโปรแกรมจำลอง Android ของฉันได้ฉันต้องทำสองขั้นตอน

sudo apt-get update
sudo apt-get install ia32-libs

หลังจากเสร็จสิ้นฉันสามารถสร้างโปรแกรมจำลองที่แนบการ์ด SD ได้


2

ฉันมีปัญหาที่แตกต่างกัน: เครื่องมือแพลตฟอร์มอยู่ในเส้นทางของฉัน แต่เครื่องมือไม่เป็นเช่นนั้น ดังนั้นทุกอย่างทำงานได้ยกเว้นไม่ได้สร้างอิมเมจ SDCard ไม่มีการแจ้งให้ทราบถึงสิ่งนี้เมื่อฉันสร้าง avd ใน eclipse และอุปกรณ์เสมือนถูกสร้างขึ้นด้วยการ์ด sd ขนาดเล็กมากทำให้เกิดข้อผิดพลาดสื่อที่ไม่พร้อมใช้งานอย่างต่อเนื่องในการติดตั้งแอป


1

ฉันมีปัญหาอื่นในการใช้ Ubuntu 32 บิต เมื่อฉันพยายามเรียกใช้ mksdcard ด้วยมือฉันได้รับข้อผิดพลาดไม่พบไฟล์

ปัญหาคือ open-jre / jdk ฉันติดตั้ง oracle java และปัญหาได้รับการแก้ไขแล้ว น่าเสียดายที่คุณไม่สามารถติดตั้ง oracle java ผ่าน apt / synaptic ได้อีกต่อไปและต้องข้ามห่วงพิเศษบางอย่าง:

https://github.com/flexiondotorg/oab-java6


1

ในการทดสอบเดเบียนเมื่อฉันพยายามเรียกใช้ ./tools/mksdcards ฉันได้รับข้อผิดพลาด:

error while loading shared libraries: libstdc++.so.6: 
cannot open shared object file: No such file or directory

การติดตั้ง lib32stdc ++ 6 ช่วยแก้ปัญหาและสามารถสร้าง avd


0

MyOS คือ Oracle Unbreakable Linux 6 - เพื่อแก้ปัญหานี้ฉันต้องติดตั้งแพ็คเกจ libstdc ++ - 4.4.6-3.el6.i686


0

หลังจากติดตั้งหลายครั้งและไม่ได้รับผลลัพธ์ใด ๆ ฉันพบสิ่งนี้และใช้งานได้

เหตุการณ์นี้เกิดขึ้นเนื่องจากsdk/toolsไม่สามารถเรียกใช้ไฟล์ปฏิบัติการในบางไฟล์ได้ ไปที่โฟลเดอร์ Android Studio และ Android SDK และทำให้ไดเรกทอรีและไฟล์ทั้งหมดสามารถเรียกใช้งานได้โดยคำสั่งนี้:

chmod +x -R *

บอกฉันว่า 9 ปีต่อมาปัญหานี้ยังคงเกิดขึ้น ช่วงเวลาที่ดีขอบคุณสำหรับการแบ่งปันประสบการณ์ของคุณ
Alex Pritchard


-1

ผมมีปัญหาเดียวกัน. หลังจากการแก้ไขปัญหาฉันรู้ว่าเป็นเพราะ Windows ของฉันเป็น 32 บิตและ mksdcard ของฉันเข้ากันได้กับ 64 บิตเท่านั้น จากนั้นฉันก็คัดลอก mksdcard ขนาด 32 บิตไปยังโฟลเดอร์ tools และลบอันที่เก่ากว่า มันช่วยแก้ปัญหาของฉันได้


-1

สำหรับผู้ที่ประสบปัญหาเดียวกันบน windows สำหรับฉันมันเป็นเพราะเครื่องมือ mksdcard.exe ไม่สามารถทำงานได้สำเร็จ เครื่องมือ SDK บางอย่างเช่น mksdcard.exe ต้องการรันไทม์ Microsoft Visual C ++ ไปที่คุณสมบัติระบบของคุณและตรวจสอบประเภทระบบของคุณ:

ใส่คำอธิบายภาพที่นี่

จากนั้นขึ้นอยู่กับประเภทระบบของคุณ (สำหรับฉันมันคือ x64) ดาวน์โหลด / อัปเดต Microsoft Visual C ++ Redistributable ล่าสุดสำหรับ Visual Studio 2019 จากลิงค์https://visualstudio.microsoft.com/downloads/

ใส่คำอธิบายภาพที่นี่

หลังจากติดตั้ง Microsoft Visual C ++ ปัญหาของฉันได้รับการแก้ไขแล้ว ฉันสามารถสร้าง AVD ได้สำเร็จ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.