อาจมีปัญหาแตกต่างกันหลายประการเมื่อคุณย้าย AVD หรือ SDK ไปยังไดเรกทอรีอื่นหรือแทนที่ SDK เก่าด้วยอันใหม่หรืออาจทำให้ SDK เสียหาย
ด้านล่างนี้ฉันจะอธิบายปัญหาที่เป็นไปได้ทั้งหมดที่ฉันรู้และจะให้วิธีแก้ปัญหากับคุณได้หลายวิธี
แน่นอนฉันคิดว่าคุณมี AVD ที่สร้างขึ้นและตั้งอยู่ในC:\Users\<user_name>\.android\avd
(Windows) หรือ~/.android/avd
(Linux / MacOS)
หากคุณย้าย.android
ไปที่อื่นให้ตั้งค่าANDROID_SDK_HOME
ตัวแปรสภาพแวดล้อมเป็นพา ธ ของพาเรนต์หลักที่มี.android
และให้แน่ใจว่าAVD Managerพบอุปกรณ์เสมือนของคุณสำเร็จ
ตรวจสอบเส้นทางด้วย <user_home>/.android/avd/<avd_name>.ini
โครงสร้าง SDK ที่ไม่สมบูรณ์ / เสียหาย
PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT
PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value
ข้อผิดพลาด 2 เหล่านี้เกิดขึ้นหากผู้เลียนแบบไม่พบ SDK หรือ SDK เสีย
ดังนั้นก่อนอื่นฉันขอแนะนำให้ลบANDROID_SDK_ROOT
ตัวแปรเลย มันจำเป็นเฉพาะเมื่อโปรแกรมจำลองอยู่นอกไดเรกทอรี SDK แต่โดยทั่วไปอีมูเลเตอร์ของคุณจะยังคงอยู่ใน SDK dir และในกรณีนี้จะต้องตรวจสอบสถานที่ SDK ได้โดยอัตโนมัติ ถ้าไม่เช่นนั้นแสดงว่า SDK ของคุณมีทรีไฟล์ผิด กรุณาทำดังต่อไปนี้:
ตรวจสอบว่าไดเรกทอรี SDKมีอย่างน้อย 4 emulator
เหล่านี้ไดเรกทอรี: platforms
, platform-tools
, system-images
, มันสำคัญมาก! ไดเรกทอรีเหล่านี้จะต้องมีอยู่ หากบางส่วนของพวกเขาไม่มีอยู่เพียงแค่สร้าง dirs ที่ว่างเปล่า
ไปและเปิดกว้าง<user_home>/.android/avd/<avd_name>
config.ini
ค้นหาimage.sysdir.1
อสังหาริมทรัพย์ มันชี้ไปที่ไดเรกทอรีภายในไดเรกทอรี SDK ที่มีภาพระบบที่แท้จริง ตรวจสอบให้แน่ใจว่าไดเรกทอรีนี้มีอยู่และมีไฟล์เช่นbuild.prop
, system.img
ฯลฯ หากไม่เป็นเช่นนั้นแล้วคุณจะต้องเปิดผู้จัดการ SDKและภาพดาวน์โหลดระบบ AVD ของคุณต้อง (ดูด้านล่าง)
หากการตั้งค่าทุกอย่างถูกต้องเมื่อข้อผิดพลาดเหล่านี้ANDROID_SDK_ROOT
จะต้องหายไป หากพวกเขาไม่ได้แล้วตอนนี้คุณอาจพยายามตั้งค่าANDROID_SDK_ROOT
ตัวแปร
แพ็คเกจที่จำเป็นและ HAXM ไม่ได้ถูกติดตั้ง
ปัญหาต่อไปที่คุณอาจพบคือตัวจำลองเริ่มการทำงาน แต่วางสายหรือออกทันที นั่นอาจหมายความว่าคุณไม่ได้ติดตั้งแพ็คเกจที่จำเป็นทั้งหมด
ข้อผิดพลาดที่เป็นไปได้อื่นคือ:
ไม่สามารถตรวจจับไบนารี ADB โดยอัตโนมัติ ฟังก์ชันการจำลองบางอย่างจะไม่ทำงานจนกว่าจะเพิ่มเส้นทางที่กำหนดเองไปยัง ADB ในหน้าการตั้งค่าแบบขยาย
ดังนั้นเพื่อเปิด AVD สำเร็จคุณต้องแน่ใจว่าติดตั้งแพ็คเกจเหล่านี้อย่างน้อย:
emulator (Android Emulator)
platform-tools (Android SDK Platform-Tools)
tools (Android SDK Tools)
และอย่างที่ฉันได้กล่าวไปแล้วคุณต้องติดตั้งอิมเมจระบบของคุณ AVD ที่ใช้งานอยู่ system-images;android-25;google_apis;x86
โปรดทราบว่ารุ่นล่าสุดบน SDK SDK Manager.exe
ไม่ได้มีแบบสแตนด์อโลน แทนที่จะเป็นคุณต้องใช้ Android Studio หรือtools\bin\sdkmanager.bat
(Linux / MacOS อาจมีsh
ไฟล์)
เพื่อแสดงรายการแพ็คเกจทั้งหมดที่มีให้ใช้sdkmanager --list
หรือsdkmanager --list --verbose
ในการติดตั้งแพ็คเกจใช้ sdkmanager <package1> <package2> ...
นอกจากนี้ฉันขอแนะนำให้ติดตั้งHAXMบนระบบของคุณด้วยตนเอง
ไฟล์ Qcow2 อ้างถึงภาพฐานที่ไม่ถูกต้อง / ไม่มีอยู่
ปัญหาสุดท้ายที่ฉันจะพูดถึงเกิดขึ้นเมื่อคุณพยายามย้าย AVD หรือ SDK จากคอมพิวเตอร์เครื่องหนึ่งหรือไดเรกทอรีหนึ่งไปยังอีกเครื่องหนึ่ง ในกรณีนี้คุณอาจได้รับข้อผิดพลาดดังกล่าว:
qemu-ระบบ i386.exe: -drive ถ้า = ไม่มีการทับซ้อนกันตรวจสอบ = ไม่มีแคช = ไม่ปลอดภัยดัชนี = 0 id = ระบบไฟล์C:\Users\<old_user_name>\.android\avd\<avd_name>
=
avd \ system.img.qcow2, อ่านอย่างเดียว: ไม่สามารถเปิดไฟล์สำรอง: ไม่สามารถเปิด ' <old_sdk_dir>\system-images\android-22\google_apis\x86\system.img
': อาร์กิวเมนต์ไม่ถูกต้อง
มี 2 วิธีในการแก้ไข:
หากคุณไม่สนใจข้อมูลที่ AVD มีอยู่ให้ลบqcow2
ไฟล์ทั้งหมดออกจากไดเรกทอรี AVD (เช่นจาก<user_home>/.android/avd/<avd_name>
) ในกรณีนี้คุณจะได้รับ Android เวอร์ชันใหม่ทั้งหมดเช่นหลังจากรีเซ็ตฮาร์ด
หากข้อมูลบนตัวจำลองมีความสำคัญสำหรับคุณให้เปิดqcow2
ไฟล์ทั้งหมดทีละตัวโดยใช้โปรแกรมแก้ไข HEX ใด ๆ (ฉันชอบHxD ) ค้นหาเส้นทางของimg
ไฟล์ฐานและเปลี่ยนเป็นไฟล์ที่ถูกต้องในOverwrite
โหมด (เพื่อรักษา ขนาดไฟล์) จากนั้นเลือกเส้นทางและรับความยาวเป็นเลขฐานสิบหก (เช่น2F
) แสดงให้เห็นถึงเฉือนแอสกี2F
/
วางไว้ในตำแหน่ง13
:
ป.ล. : ไม่แน่ใจ แต่อาจมีประโยชน์บางอย่างเช่นqemu-imgทำให้สามารถตั้งค่าภาพฐานที่แตกต่างกันได้ สำหรับฉันมันง่ายกว่าที่จะแก้ไขไบนารีด้วยตนเอง
ตอนนี้คุณอาจจะสามารถเปิดอุปกรณ์ Android เสมือนได้สำเร็จ ฉันหวังว่าอย่างนั้น :)