ข้อผิดพลาด: ไบนารีของตัวจำลอง Linux Android 32 บิตจะถูกเลิกใช้เมื่อพยายามที่จะเรียกใช้ตัวจำลองของ Android


14

ฉันได้ตั้งสภาพแวดล้อมการพัฒนา android ใน Ubuntu 10.10, 32 bit หลังจากสร้าง AVD เมื่อฉันเปิดตัวอีมูเลเตอร์ฉันได้รับข้อผิดพลาดดังต่อไปนี้

ข้อผิดพลาด: ไบนารีจำลองระบบ Linux Android 32 บิตถูกเลิกใช้เพื่อใช้งาน
คุณจะต้องทำอย่างน้อยหนึ่งอย่างต่อไปนี้:
- ใช้ตัวเลือก '-force-32bit' เมื่อเรียกใช้ 'อีมูเลเตอร์'
- ตั้งค่า ANDROID_EMULATOR_FORCE_32BIT เป็น 'จริง' ในสภาพแวดล้อมของคุณ
ตัวเลือกใดตัวเลือกหนึ่งจะอนุญาตให้คุณใช้ไบนารีแบบ 32 บิต แต่โปรดทราบว่าสิ่งเหล่านี้จะหายไปในการเปิดตัว Android SDK ในอนาคต
ลองพิจารณาย้ายไปใช้ระบบ Linux 64 บิตก่อนที่จะเกิดขึ้น

รุ่น ADT ที่ฉันใช้คือ 23.0.3.1327240 ไลบรารี SDK ที่ฉันใช้คือ 32 บิต ได้โปรดช่วยฉันด้วย ขอบคุณ


1
อัปเกรดเป็นเวอร์ชันใหม่สลับเป็น 64 บิต
Mateo

4
คุณควรอัพเกรดเป็น Ubuntu ที่รองรับ โดยปกติเราจะปิดสิ่งนี้ไม่ได้รับการสนับสนุน แต่เนื่องจากปัญหานี้ไม่ได้เจาะจงเฉพาะกับรุ่นที่เก่ากว่าและฉันคิดว่าคนอื่นอาจประสบปัญหานี้ในรุ่นที่สนับสนุนฉันจะออกจากมัน แต่ฉันขอแนะนำให้คุณอัพเกรดเป็นอย่างน้อย 12.04
เซท

3
ฉันเห็นด้วย: นี่เป็นส่วนน้อยของคำถามใหม่เกี่ยวกับปัญหาในการปล่อย EoL โดยที่ (a) เรารู้ว่าคำตอบนั้นเป็นอิสระจากการปล่อยและ (b) ทั้งคำถามและคำตอบ (เพราะเกี่ยวข้องกับกิจกรรมทั่วไปที่มี หลุมพรางที่ไม่ชัดเจน) ดูเหมือนว่าพวกเขาอาจมีค่าสูงเป็นพิเศษต่อผู้อื่น สิ่งนี้สามารถแก้ไขได้เพื่อทำให้เป็นมาตรฐานสำหรับทุกรุ่น แต่เราควรเปิดไว้ @MohanrajMani แต่โปรดอย่าใช้ 10.10 ต่อไป ไม่ได้รับการสนับสนุนเป็นเวลานานและเป็นส่วนหนึ่งของความหมายที่ไม่ได้รับการปรับปรุงเพื่อแก้ไขช่องโหว่ด้านความปลอดภัยที่ค้นพบใหม่ มันเสี่ยงที่จะใช้
Eliah Kagan

1
สิ่งนี้ไม่เกี่ยวกับ Ubuntu 10.10 แต่เกิดจากการพยายามใช้ android emulator บนลินุกซ์ distro 32 บิตเมื่อมันถูกออกแบบมาสำหรับ 64 บิต สิ่งเดียวกันจะเกิดขึ้นบน Ubuntu 12.xx และ 14.xx หากใช้ intel 386 distro นอกจากนี้สุดท้ายฉันตรวจสอบว่าคุณไม่สามารถเปลี่ยนเป็น 64 บิตได้ AMD รองรับ 64 บิตเท่านั้นและ 32 บิตรองรับ Intel เท่านั้น
JSON

1
@JSON Ubuntu รุ่น 64 บิตทำงานบนทั้งโปรเซสเซอร์ 64 บิตและ Intel 64 บิต "amd" ใน "amd64" ไม่ได้แปลว่าเป็น AMD เท่านั้น ในทำนองเดียวกันเวอร์ชั่น 32 บิตรันทั้งโปรเซสเซอร์ AMD (32- และ -64- บิต) และ (32- และ -64- บิต) Intel - "i" ใน "i386" ไม่ได้หมายความว่าเป็น Intel เท่านั้น . ดูUbuntu รุ่น 64 บิตเท่านั้นที่สามารถใช้งานร่วมกับ AMD CPU ได้หรือไม่ และความแตกต่างระหว่างการดาวน์โหลด i386 และ amd64 สำหรับรายละเอียด (ฉันเห็นด้วยกับคำถามนี้ไม่เฉพาะเจาะจงกับอูบุนตูรุ่น 10.10)
Eliah Kagan

คำตอบ:


15

คุณได้รับข้อผิดพลาดนี้เพราะเห็นได้ชัดว่าคุณกำลังทำงานบนระบบ 32 บิตและตัวจำลอง Android ได้รับการออกแบบให้ทำงานได้ดีที่สุดในสภาพแวดล้อมแบบ 64 บิต ทางออกเดียวที่แท้จริงคือการติดตั้งระบบปฏิบัติการ 64 บิต

หากฮาร์ดแวร์ของคุณไม่สนับสนุน 64bit หรือคุณไม่สามารถติดตั้งได้ในขณะนี้คุณสามารถชั่วคราวบายพาสปัญหาโดยผ่าน-force-32bitเมื่อคุณเริ่มจำลองจาก commandline หรือโดยการตั้งค่าANDROID_EMULATOR_FORCE_32BITที่จะtrueอยู่ในสภาพแวดล้อมของคุณ (เป็นข้อผิดพลาดกล่าวว่า) คุณสามารถทำได้โดยการเรียกใช้:

gedit .profile  

จากอาคารผู้โดยสาร เพิ่มข้อความ:

export ANDROID_EMULATOR_FORCE_32BIT=true  

ที่ส่วนท้ายของไฟล์และบันทึกและปิด ฉันไม่สามารถทดสอบได้ในตอนนี้ แต่คุณจะต้องเรียกใช้source .profileจากเทอร์มินัลหรือรีสตาร์ทเพื่อให้การเปลี่ยนแปลงมีผล

ลองเปิดตัวอีมูเลเตอร์

ขอแนะนำให้คุณติดตั้งระบบปฏิบัติการ 64 บิตเพื่อพัฒนา Android ต่อไปเนื่องจาก Google จะลบไบนารี 32 บิตซึ่งจะทำให้อีมูเลเตอร์ของคุณหยุดทำงาน Android เองก็กำลังเคลื่อนไปสู่สถาปัตยกรรม x64 ดังนั้นด้วยการอยู่กับ 32 บิตคุณจะถูกทิ้งไว้ข้างหลังในไม่ช้า


4

ฉันมีทางออกที่ดีอย่างหนึ่ง คุณสามารถเริ่มด้วย eclipse หรือ netbeans ลอง :

  1. ใน Eclipse คลิกโฟลเดอร์โครงการ Android ของคุณจากนั้นเลือก Run> Run Configurations ...

  2. ในแผงด้านซ้ายของกล่องโต้ตอบเรียกใช้การกำหนดค่าให้เลือกการกำหนดค่าการเรียกใช้โครงการ Android ของคุณหรือสร้างการกำหนดค่าใหม่

  3. คลิกที่แท็บเป้าหมาย

ในฟิลด์ตัวเลือกบรรทัดคำสั่งตัวจำลองเพิ่มเติมให้ป้อน:

-force-32bit

เรียกใช้โครงการ Android ของคุณโดยใช้การกำหนดค่าการทำงานนี้

ใน netbeans คุณ: 1. เมื่อใดที่คุณเลือก debuger เลือก Customize ...

  1. ในตัวเลือก Emulator เขียน -force-32bit
  2. คลิกตกลง และเรียกใช้แอปพลิเคชัน

1

แก้ไขไฟล์นี้:

เปิดเทอร์มินัลในอูบุนตู

gedit .bashrc

วางข้อความนี้:

export ANDROID_EMULATOR_FORCE_32BIT=true

รีเฟรชแหล่งที่มา:

source ~/.bashrc

3
~/.bashrcไม่ไม่จำเป็นต้องได้รับการแก้ไขเป็นรากจึงมีเหตุผลที่จะไม่ใช้sudoในการนี้ (นอกเหนือจากนั้นนี่เป็นคำตอบที่สมเหตุสมผลและเป็นประโยชน์ แต่ฉันขอแนะนำให้ใส่ตัวแปรสภาพแวดล้อม~/.profileแทนในขณะที่ Seth แนะนำหรืออาจมอบหมายงาน - นั่นคือโดยไม่ต้องexport- ใน `~ / .pam_environment)
Eliah Kagan

@EliahKagan ในแง่ของQ / A~/.profileนี้อาจไม่ใช่สถานที่ที่ดีที่สุดหลังจากทั้งหมด? ฉันกำลังสับสนบ้างเพราะวิกิพีเดียโดยเฉพาะปัญหาการวางตัวแปรสภาพแวดล้อมใน~/.profile..
เซท

1

สร้างเชลล์สคริปต์:

#!/bin/bash
#
#   set export ANDROID_EMULATOR_FORCE_32BIT=true

export ANDROID_EMULATOR_FORCE_32BIT=true
/opt/adt-bundle-linux-x86-20140702/eclipse/eclipse

เปลี่ยนเชลล์สคริปต์เป็น executable และรันเพื่อเรียกใช้ eclipse

/opt/adt-bundle-linux-x86-20140702/eclipse/eclipse เป็นพา ธ ไปยัง eclipse ที่สามารถเรียกทำงานได้


สิ่งนี้ทำงานได้เมื่อใช้ Titanium แต่เพียงแก้ไขไฟล์ SH ของพวกเขา ดังนั้นงานนี้
jfreak53

1

ฉันได้แก้ไขปัญหานี้แล้วโดยอัปเดตการกำหนดค่าตัวจำลองใน Android studio ดังต่อไปนี้

  1. ไปที่เมนู Run -> Edit Configuration .. ใน Android Studio
  2. เลือกชื่อแอพภายใต้Android Applicationในบานหน้าต่างด้านซ้าย
  3. เลือกแท็บ Emulator ที่บานหน้าต่างด้านขวา
  4. ทำเครื่องหมาย "ตัวเลือกบรรทัดคำสั่งเพิ่มเติม:" และป้อน-force-32bitในช่องข้อความถัดจาก
  5. เลือก "ตกลง" แล้วลองเรียกใช้แอปอีกครั้ง
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.