PANIC: เส้นทางระบบ AVD ที่ใช้งานไม่ได้ ตรวจสอบค่า ANDROID_SDK_ROOT ของคุณ


152

หลังจากพิมพ์cordova run androidเทอร์มินัลฉันได้รับข้อผิดพลาดนี้:

Waiting for emulator to start...
PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value [/Users/username/Library/Android/sdk]!

สิ่งนี้เกิดขึ้นหลังจากการส่งออก:

export ANDROID_SDK_ROOT='/Users/username/Library/Android/sdk'

ก่อนส่งออกฉันได้รับ:

Waiting for emulator to start...
PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT

ความคิดใดที่ฉันจะผิด ฉันแน่ใจว่านี่เป็น sdk root ดังนั้นทำไมฉันจึงเสียหายเส้นทางระบบ avd


คุณจัดการเพื่อเปิดโปรแกรมจำลองด้วย AVD Manager หรือไม่ (อยู่ใน <AndroidSDK> \ AVD Manager.exe)
e666

4
ฉันกำลังเผชิญกับปัญหาเดียวกันนี้ใน Visual Studio และสร้างแอพข้ามแพลตฟอร์ม ข้อความผิดพลาดของฉันคือ1>PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT 1>Emulator Nexus_5X_API_23 cannot be started.
RBT

ฉันเพิ่งเปิดตัวจัดการ SDK Android และติดตั้งทุกอย่างที่มี (เครื่องมือ, ระดับ API ต่างๆ, ความพิเศษ) แท้จริง! มันแก้ไขปัญหาของฉัน แม้ว่าฉันจะเผชิญกับปัญหาเพิ่มเติมหลังจากนั้นซึ่งเกี่ยวข้องกับเทคโนโลยี HAXM ของ Intel ที่จำเป็นสำหรับการเรียกใช้ Android emulators พวกเขาจะต้องได้รับการแก้ไขแตกต่างกัน
RBT

1
ซ้ำซ้อนที่เป็นไปได้ของไม่สามารถรันโปรแกรมจำลองใน Android Studio
coelhudo

2
ฉันสามารถเปิด avd ผ่าน android studio ฉันได้รับข้อผิดพลาดนี้เมื่อพยายามเปิดจากบรรทัดคำสั่ง มีข้อผิดพลาดPANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value [/usr/local/share/android-sdk]!เมื่อฉันตรวจสอบเส้นทาง->echo $ANDROID_SDK_ROOT /usr/local/share/android-sdkนั้น ดังนั้นอีมูเลเตอร์จึงล้มเหลวแม้ว่าเส้นทางจะถูกต้อง
Mike S.

คำตอบ:


163

อาจมีปัญหาแตกต่างกันหลายประการเมื่อคุณย้าย 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 ของคุณมีทรีไฟล์ผิด กรุณาทำดังต่อไปนี้:

  1. ตรวจสอบว่าไดเรกทอรี SDKมีอย่างน้อย 4 emulatorเหล่านี้ไดเรกทอรี: platforms, platform-tools, system-images, มันสำคัญมาก! ไดเรกทอรีเหล่านี้จะต้องมีอยู่ หากบางส่วนของพวกเขาไม่มีอยู่เพียงแค่สร้าง dirs ที่ว่างเปล่า

  2. ไปและเปิดกว้าง<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 ​​วิธีในการแก้ไข:

  1. หากคุณไม่สนใจข้อมูลที่ AVD มีอยู่ให้ลบqcow2ไฟล์ทั้งหมดออกจากไดเรกทอรี AVD (เช่นจาก<user_home>/.android/avd/<avd_name>) ในกรณีนี้คุณจะได้รับ Android เวอร์ชันใหม่ทั้งหมดเช่นหลังจากรีเซ็ตฮาร์ด

  2. หากข้อมูลบนตัวจำลองมีความสำคัญสำหรับคุณให้เปิดqcow2ไฟล์ทั้งหมดทีละตัวโดยใช้โปรแกรมแก้ไข HEX ใด ๆ (ฉันชอบHxD ) ค้นหาเส้นทางของimgไฟล์ฐานและเปลี่ยนเป็นไฟล์ที่ถูกต้องในOverwriteโหมด (เพื่อรักษา ขนาดไฟล์) จากนั้นเลือกเส้นทางและรับความยาวเป็นเลขฐานสิบหก (เช่น2F) แสดงให้เห็นถึงเฉือนแอสกี2F /วางไว้ในตำแหน่ง13:

แก้ไขไฟล์ Android qcow2 โดยใช้โปรแกรมแก้ไข HxD HEX

ป.ล. : ไม่แน่ใจ แต่อาจมีประโยชน์บางอย่างเช่นqemu-imgทำให้สามารถตั้งค่าภาพฐานที่แตกต่างกันได้ สำหรับฉันมันง่ายกว่าที่จะแก้ไขไบนารีด้วยตนเอง


ตอนนี้คุณอาจจะสามารถเปิดอุปกรณ์ Android เสมือนได้สำเร็จ ฉันหวังว่าอย่างนั้น :)


อีกเหตุผลหนึ่งที่อาจหายไปhw.cpu.archใน config.ini
daserge

2
ฉันทำตามคำแนะนำทั้งหมดและยังคงเส้นทางระบบ AVD ที่ใช้งานไม่ได้
ม้วน

น่ากลัว ทำได้ดีมากกับไฟล์ฐาน qcow! คุณรู้เกี่ยวกับวิธีทั่วไปมากขึ้นในการรีบูทไฟล์ qcow หรือไม่? ฉันต้องการแบ่งปัน AVD ของฉันกับหลาย ๆ คน ...
Amit Moran

@daserge อัลไฟล์ '.ini' ของฉันมีรูปแบบแปลก ๆ (ไม่มีการแบ่งบรรทัดหลังจากพารามิเตอร์แต่ละตัว) นั่นเป็นปกติหรือไม่
J3STER

1
tools/bin/sdkmanager "platform-tools"ขอบคุณแพลตฟอร์มเครื่องมือโฟลเดอร์ที่ขาดหายไปในกรณีของฉันดังนั้นฉันติดตั้งด้วยคำสั่ง มันเป็นความเจ็บปวดในการค้นหาสิ่งผิดปกติเนื่องจากข้อความแสดงข้อผิดพลาดโง่ ๆ นี้ ("PANIC: ไม่สามารถหาเส้นทางระบบ AVD ได้โปรดกำหนด ANDROID_SDK_ROOT") ซึ่งไม่ชัดเจนว่าปัญหาคืออะไร ...
baptx

129

บน Mac: ฉันได้ติดตั้งandroid-sdkโดยใช้brewเช่นเดียวกับ Android Studio การติดตั้ง 2 ครั้งทำให้เกิดปัญหานี้ เมื่อฉันถอนการติดตั้งชงของฉันติดตั้ง sdk โดยใช้brew cask uninstall android-sdkและเพิ่ม vars ต่อไปนี้ใน env ของฉัน มันได้ผล

export ANDROID_HOME=/Users/<Username>/Library/Android/sdk
export ANDROID_SDK_ROOT=$ANDROID_HOME

18
ก่อนหน้านี้ฉันได้ติดตั้ง android sdk โดยใช้การชงขณะที่ทำตามบทช่วยสอนดั้งเดิม หลังจากติดตั้ง Android Studio ฉันพบว่าตัวเลียนแบบไม่ทำงาน การแก้ไขของคุณแก้ไขปัญหาของฉันได้ ขอบคุณ!
Cocoanut

2
มันก็ใช้ได้กับฉันเช่นกัน ฉันติดตั้งแล้วandroid-sdkระหว่างการติดตั้ง NativeScript อีมูเลเตอร์ยิงขึ้นโดยตรงจาก Android Studio ตอนนี้ แต่ไม่ใช่ผ่าน NativeScript (tns run android)
Mudlabs

3
มันแก้ไขปัญหาของฉันได้ แต่ไม่ต้องลบรุ่น android-sdk ของ Brew
mrisek

1
เครื่องมือ commandline เลิกใช้แล้ว สิ่งที่ดีที่สุดในการก้าวไปข้างหน้าคือการติดตั้ง AS อย่างถูกต้องและหลีกเลี่ยงการชงถังfacebook.github.io/react-native/docs/…
Harry Moreno

1
หลังจากการค้นหาจำนวนมากในที่สุดก็แก้ปัญหาของเราได้ ขอบคุณมาก!!!
user3575337

27

วิธีนี้จะช่วยแก้ปัญหาของคุณใน macOS:

pico ~/.bash_profile

export ANDROID_HOME=/Users/$USER/Library/Android/sdk
export ANDROID_SDK_HOME=/Users/$USER/Library/Android/sdk
export ANDROID_AVD_HOME=/Users/$USER/.android/avd
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_AVD_HOME

source ~/.bash_profile

4
หลังจากหลายสิ่งหลายอย่างพยายามนี่เป็นงานเดียวขอบคุณมาก: D
Alan Cordova

ทำงานได้อย่างสมบูรณ์แบบขอบคุณ
เฮอร์แมน Demsong

@SundayOkoi มันไปในไดเรกทอรีบ้านของคุณ
1800 ข้อมูล

เหมือนกับฉัน. อันนี้ใช้ได้ผลกับฉัน แม้ว่าฉันจะทำการเปลี่ยนแปลงเล็กน้อยในอันนี้
Edper

15

การลบข้อผิดพลาดขณะใช้ Android SDK ของ Homebrew เป็น SDK เริ่มต้น

ในฐานะ @EFreak ฉันได้ติดตั้ง android-sdk กับ homebrew (ผู้จัดการแพ็คเกจสำหรับ Macs) ฉันต้องทำด้านล่างเพื่อแก้ไขข้อผิดพลาดเพราะฉันทำตามแบบฝึกหัดชาวพื้นเมืองและพบข้อผิดพลาด ถ้าคุณชอบฉันตั้งใจที่จะใช้รุ่นชงมากกว่ารุ่น android-sdk ใช้คำตอบนี้ (นี้จะช่วยให้คุณใช้ nativescripts tns run androidapi) และถ้าคุณต้องการหุ่นยนต์สตูดิโอเริ่มต้น android-sdk ปฏิบัติตามคำตอบของ @ EFreak

การกำหนดค่า Android Studio ให้ใช้ Android SDK ของ Homebrew

โดยทั่วไปคุณเพียงแค่ต้องเปลี่ยนตำแหน่ง SDK Android ของคุณในสตูดิโอ Android ก่อนเปิดโครงการใน android studio จากนั้นเปิด SDK Manager โดยคลิกที่ปุ่มนี้

ตำแหน่งปุ่ม android sdk manager

ถัดไปเมื่อการตั้งค่าเริ่มต้นสำหรับตัวจัดการ SDK Android มาถึงคุณจะต้องคลิกแก้ไขถัดจากตำแหน่งของ SDK Android

ป้อนคำอธิบายรูปภาพที่นี่

การค้นหาตำแหน่งของ SDK Android ของ Homebrew

ถัดไปคุณต้องปรับปรุง SDK ตั้งอยู่ที่หน้าจอตั้งค่าส่วนประกอบ SDK ของฉันจริงbrewหุ่นยนต์ SDK /usr/local/share/android-sdkตั้งอยู่ที่นี่ คุณสามารถค้นหาตำแหน่งที่ติดตั้งของคุณได้โดยเรียกใช้brew cask info android-sdkจากนั้นใกล้กับด้านล่างสุดของเอาต์พุตที่ควรพูดว่า:

You can control android sdk packages via the sdkmanager command.
You may want to add to your profile:

  'export ANDROID_SDK_ROOT="/usr/local/share/android-sdk"'

ค่าของตัวแปรexported ANDROID_SDK_ROOT(ซึ่งในที่นี้คือ/usr/local/share/android-sdk) คือตำแหน่งของ home-brew ของ android sdk

จากนั้นคุณต้องคลิกปุ่มที่ตั้ง Android SDK (ติดป้ายว่าเป็น 1 ในภาพ) และวางในตำแหน่ง Android SDK ของ Homebrew

ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นเพียงติดตั้งตัวช่วยสร้างสิ่งใด ๆ ฉันต้องลบและสร้างอีมูเลเตอร์อุปกรณ์ของฉันใหม่ในขั้นตอนนี้ แต่ดูเหมือนจะใช้งานได้ดีหลังจากนั้น

การตั้งค่าตัวแปรสภาพแวดล้อม Android SDK ให้ชี้ไปที่ Android SDK ของ Homebrew

นอกจากนี้คุณอาจต้องการตรวจสอบให้แน่ใจว่าคุณกำลังเดินทางไปเส้นทาง Homebrew ว่าสคริปต์การตั้งค่าโปรไฟล์ของคุณมีตัวแปรANDROID_HOMEและANDROID_SDK_ROOTสภาพแวดล้อมที่ตั้งค่าเป็นตำแหน่ง Homebrew ของ android sdk มิฉะนั้นข้อมูลข้างต้นจะไม่ทำงาน นี้สามารถได้รับการเปลี่ยนแปลงจากที่ตั้ง Homebrew หากคุณติดตั้ง Homebrew ก่อนการติดตั้ง Android สตูดิโอเป็นแหลมออกมาในคำตอบนี้โดย@Jamie เกราะ คุณสามารถตรวจสอบตัวแปรสภาพแวดล้อมสำหรับหุ่นยนต์ SDK มีการตั้งค่าได้อย่างถูกต้องโดยการเรียกใช้echo $ANDROID_HOMEและecho $ANDROID_SDK_ROOTและตรวจสอบว่าพวกเขาทั้งสองแสดงสถานที่ตั้ง Homebrew ของหุ่นยนต์ SDK

หากคุณต้องการเปลี่ยนค่า ANDROID_HOME และ ANDROID_SDK_ROOT คุณสามารถทำได้ในการตั้งค่าโปรไฟล์ของคุณใน Mac ซึ่งน่าจะเป็นในรูปแบบ~/.bash_profile"~ / .bashrc" หรือ "~ / .profile" และกำหนดดังนี้:

export ANDROID_HOME="/usr/local/share/android-sdk"
export ANDROID_SDK_ROOT="/usr/local/share/android-sdk"

คุณต้องเปลี่ยนค่าของการส่งออกทั้งสองให้เป็นค่าที่เหมาะสมของตำแหน่ง Android SDK ของ Homebrew จากนั้นให้บันทึกไฟล์ ในการตรวจสอบว่ามีการเขียนค่าที่ถูกต้องคุณควรปิดและเปิดเทอร์มินัลของคุณซึ่งควรรันไฟล์อีกครั้งและรีเซ็ตตัวแปรสภาพแวดล้อมหรือคุณสามารถแหล่งไฟล์โดยเรียกใช้ไฟล์source <profile file name>ที่เป็นไฟล์โปรไฟล์ที่คุณแก้ไขและบันทึก จากนั้นคุณสามารถเรียกใช้อีกครั้งecho $ANDROID_HOMEและecho $ANDROID_SDK_ROOTตรวจสอบว่าพวกเขามีตำแหน่ง sdk Android Homebrew


3
คุณเป็นฮีโร่! NativeScript docs ไม่สนใจที่จะพูดถึงเรื่องนี้อย่างสมบูรณ์
Jamie Birch

ฉันไม่คิดว่าคุณต้องมีการติดตั้ง Brew เพื่อให้สามารถเรียกใช้งานtns run android.ได้สำหรับฉันก่อนที่ฉันจะเรียกใช้สคริปต์การตั้งค่าดั้งเดิม สคริปต์แบ่งสิ่งต่าง ๆ มากมาย -_-
Felipe Centeno

1
@ FelipeCenteno ใช่คุณไม่จำเป็นต้องชงเพื่อทำสิ่งนี้ นี่เป็นเพียงวิธีการที่คุณทำถ้าคุณได้ติดตั้ง Android sdk กับ Brew แล้ว คุณสามารถใช้คำตอบ EFreaks ถ้าคุณเพิ่งใช้ sdk ของ android studio ที่เป็นค่าเริ่มต้น
จอห์น

14

หมายความว่าเส้นทางของคุณไปยังเครื่องมือไม่ถูกต้อง นี่คือสิ่งที่ดูเหมือนว่าใน mac โดยใช้การชง ทราบรุ่น

export ANDROID_SDK_ROOT='/usr/local/Cellar/android-sdk/24.4.1_1'

ในกรณีของคุณดูเหมือนว่าคุณควรใช้สิ่งนี้:

export ANDROID_SDK_ROOT='/Users/username/Library/Android/sdk'

3
ข้อผิดพลาดยังคงเหมือนเดิม นอกจากนี้ผมคู่ตรวจสอบและตั้งอยู่ในANDROID_SDK_ROOT .bash_profileแม้echo $ANDROID_SDK_ROOTจะช่วยให้เส้นทางที่ถูกต้อง: /usr/local/Cellar/android-sdk/24.4.1_1 ฉันใช้ MacOS กับ Homebrew
Shivam Maheshwari

12

ฉันมีปัญหาเดียวกันใน
Windows10 ของฉันแก้ไขปัญหาของฉันโดยทำตามขั้นตอนด้านล่าง
open Android Studio
- เครื่องมือ
- ตัวจัดการ SDK
- คัดลอกตำแหน่ง
SDK Android
ตัวแปรสภาพแวดล้อมระบบการตั้งค่าตำแหน่ง SDK Android
ANDROID_HOME และ ANDROID_SDK_ROOT
ตัวแปรสภาพแวดล้อมระบบ


ฉันมีปัญหาเดียวกัน ขอบคุณ
Jason Ching

ฉันกำลังเผชิญกับปัญหาเดียวกันและแก้ไขด้วยคำแนะนำเหล่านี้
SuKu

8

ฉันมีปัญหาเดียวกันหลังจากอัปเดตโปรแกรมจำลอง ปัญหาได้รับการแก้ไขหลังจากเพิ่มตัวแปรANDROID_AVD_HOME ป้อนคำอธิบายรูปภาพที่นี่

สำคัญ:อักขระที่ไม่ใช่ ASCII ไม่สามารถใช้ในพา ธ ในที่สุดติดตั้งอุปกรณ์เสมือนใหม่หรือแทนที่เส้นทางอุปกรณ์ด้วยตนเองในไฟล์ settings.ini Configuration ซึ่งมีเส้นทางเก่าที่มีอักขระที่ไม่ใช่ ASCII

C:\Users\<user_name>\.android\avd\<avd_name>

ใช่แล้วตัวอักษรที่ไม่ใช่ ASCII เป็นสิ่งสำคัญ หลังจากลบตัวอักษรเหล่านี้แล้วก็ใช้งานได้ดี วิธีลบsuperuser.com/questions/1355431/…
Alex Z

8

ฉันรัน Android Studio บน Windows 10 ตั้งค่า ANDROID_HOME และ ANDROID_SDK_ROOT ในตัวแปรสภาพแวดล้อมและยังพบข้อผิดพลาด

ปรากฎว่าฉันลืมดาวน์โหลดอุปกรณ์

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

หลังจากดาวน์โหลด "อิมเมจระบบที่หายไป" ทุกอย่างทำงานได้ดี


2
พระเจ้า. ฉันตั้งค่าตัวแปรสภาพแวดล้อมมากมายที่ไม่จำเป็นต้องตั้งค่า สิ่งที่ฉันต้องทำคือดาวน์โหลดบางสิ่ง ขอบคุณ
แอนดี้

7

ในกรณีของฉันมันเสียเพราะ ANDROID_HOME และ ANDROID_SDK_ROOT นั้นแตกต่างกันดังนั้นเมื่อฉันตั้งค่า ANDROID_HOME ให้เหมือนกับ ANDROID_SDK_ROOT แล้วก็เริ่มทำงานได้


1
ใช่ขอบคุณที่ใช้งานได้สำหรับฉันและเป็น @Blagojce กล่าวว่าฉันเพิ่ม C: \ Users \% ชื่อผู้ใช้% \ AppData \ Local \ Android \ sdk \ ในทั้งสองตัวแปร ANDROID_HOME และ ANDROID_SDK_ROOT
Abdelhadi Abdo

นั่นแก้ไขให้ฉันด้วย ส่วนใหญ่ฉันอาจติดตั้ง Android SDK ไว้ก่อนที่จะติดตั้ง Visual Studio / Xamarin
thowa

6

คำตอบของ Oleg Cherrs ทำให้ฉันมีทางออก อย่างที่เขาพูดถึง

ไปที่ /.android/avd/ และเปิด config.ini ค้นหาคุณสมบัติ> image.sysdir.1 มันชี้ไปที่ไดเรกทอรีภายใน SDK ที่มีระบบ> ภาพ ตรวจสอบให้แน่ใจว่ามีไดเรกทอรีนี้อยู่และมีไฟล์เช่น build.prop,> system.img เป็นต้นหากไม่มีคุณต้องเปิด SDK Manager และ> ดาวน์โหลดอิมเมจระบบที่ AVD ต้องการ (ดูด้านล่าง)

ฉันพบไฟล์ emulator * .ini ที่เกี่ยวข้องในไดเร็กทอรี avd มีฉันแก้ไขรายการ "image.sysdir.1" ฉันแทนที่สัมพัทธ์ด้วยพา ธ สัมบูรณ์ (ต่อท้าย ANDROID_SDK_ROOT ด้านหน้า) หลังจากนั้นตัวจำลองเริ่มต้นจากบรรทัดคำสั่งตามที่คาดไว้


ทำงานให้ฉันเช่นกันเฉพาะโซลูชันที่ทำงานภายใต้ WIN10 x64 พร้อมตั้งค่าตัวแปร PATH ทั้งหมดอย่างถูกต้อง (FYI: ฉันต่อท้ายเส้นทางสัมบูรณ์ของ ANDROID_SDK_ROOT แทนที่จะเป็นตัวแปรเอง)
Max Methot

ฉันไปที่C:\Users\edkol\.android\avdแต่ฉันไม่เห็น config.ini ใด ๆ - ฉันต้องเพิ่มหรือไม่ ถ้าเป็นเช่นนั้นฉันจะหามันได้จากที่ไหน?
ekolis

6
  • Platfomsไดเรกทอรีที่ขาดหายไปใน/ usr / local / หุ้น / Android SDK-

  • ฉันสร้างไดเรกทอรีว่างเปล่าชื่อแพลตฟอร์มที่แก้ไขปัญหา


5

ตกลงฉันสามารถเรียกใช้ Android จากคอร์โดวาฉันเปลี่ยน ANDROID_HOME เป็น

export ANDROID_HOME=/usr/local/opt/android-sdk

5

คุณควรเพิ่ม AVD Emulator ไปที่ตำแหน่งนี้:

C:\Users\%username%\AppData\Local\Android\sdk\

เริ่ม AVD Manager และในแท็บที่สอง (นิยามอุปกรณ์) คลิกที่ปุ่ม "createAVD"


4

ฉันอยู่ใน Windows 10 และปัญหาคือไดเรกทอรีของ avd ในคอมพิวเตอร์ของฉันมีอักขระที่ไม่ใช่ ASCII อยู่

นี่คือสิ่งที่ต้องทำ:

เรียกใช้ cmd ในฐานะผู้ดูแลระบบ

เรียกใช้คำสั่งต่อไปนี้:

mklink /D C:\\.android C:\\Users\\-yourUsername-\\.android

(สิ่งนี้จะสร้างลิงก์สัญลักษณ์ระหว่างเส้นทางที่มีอักขระที่ไม่ใช่ ASCII และใหม่)

ในตัวแปรสภาพแวดล้อมเพิ่มตัวแปรที่มีค่า ANDROID_AVD_HOMEC:\\.android\avd


3

เพิ่งพบปัญหานี้ในวันนี้และจัดการเพื่อแก้ไข

โปรแกรมจำลอง: [140735565005632]: ข้อผิดพลาด: android / android-emu / android / qt / qt_setup.cpp: 28: ไม่พบไลบรารี Qt ที่ / Users / your_user_name / Library / Android / sdk / emulator / lib64 / qt / lib

15:08 Emulator: ไม่สามารถเปิด '/ Users / your_user_name / Library / Android / sdk / emulator / qemu / darwin-x86_64 / qemu-system-x86_64': ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว

วิธีแก้ปัญหานั้นค่อนข้างง่าย เพียงติดตั้ง Android emulator ผ่าน Android Studio => tools => Android => SDK manager => เครื่องมือ SDK => เลือก Android Emulator => Apply

ฉันใช้ MacBook Pro กับ macOS High Sierra และฉันเชื่อว่าเครื่องของคุณไม่มีส่วนเกี่ยวข้องกับปัญหานี้ ไม่ได้ติดตั้งตัวจำลองเมื่อเรียกใช้ตัวจัดการการติดตั้ง Android Studio เป็นครั้งแรกอย่างน้อยสำหรับฉันด้วย Android Studio 3.0.1

ตรวจสอบให้แน่ใจว่าคุณได้กำหนดเส้นทางไว้ใน. bashrc หรือ. zshrc ดังนี้:

export ANDROID_HOME=/Users/your_user_name/Library/Android/sdk
export ANDROID_SDK_ROOT=$ANDROID_HOME
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools

2

ตรวจสอบว่าอิมเมจระบบที่ใช้โดย AVD ของคุณได้รับการดาวน์โหลดภายใต้ $ANDROID_SDK_ROOT/system-images/


2

ฉันมีปัญหาเดียวกันซึ่งหลังจากการตั้งค่าตัวแปรเส้นทางต่อไปนี้ได้หายไป หมายเหตุเส้นทางบ้าน AVD แตกต่างจากสามอื่น ๆ

ป้อนคำอธิบายรูปภาพที่นี่


2

NativeScript

สำหรับผู้ที่มีปัญหาในการเปิดตัวโปรแกรมจำลองระบบ Android ผ่าน NativeScript อาจเป็นไปได้ว่า env vars ANDROID_HOME และ ANDROID_SDK_ROOT ถูกแทนที่แล้ว

วิธีที่ฉันจัดการเพื่อสร้างปัญหาให้ตัวเองคือการติดตั้ง Android Studio เพื่อสร้างตัวจำลองที่แตกต่างกัน ฉันทำสิ่งนี้หลังจากติดตั้ง android sdk ผ่าน home brew แล้ว

ดังนั้นหากในระหว่างการติดตั้ง NativeScript คุณเลือกที่จะติดตั้ง android sdk ผ่าน HomeBrew, NativeScript จะตั้งค่าด้านบนดังนี้:

ANDROID_HOME=/usr/local/share/android-sdk
ANDROID_SDK_ROOT=/usr/local/share/android-sdk

หลังจากนั้นการติดตั้ง Android Studio จะแทนที่ค่าเหล่านี้ดังนี้:

ANDROID_HOME=/Users/[User]/Library/Android/sdk
ANDROID_SDK_ROOT=/Users/[User]/Library/Android/sdk

ดังนั้นโดยปกติจะมีข้อขัดแย้งกับ Android studio และการติดตั้ง NativeScript / Brew ของ android sdk การลบอย่างใดอย่างหนึ่งหรืออื่น ๆ และ / หรือการตรวจสอบว่าตัวแปร env มีเส้นทางที่ถูกต้องควรจะได้รับการจำลองของคุณที่จะเปิดตัว


1

หลังจากใช้เวลานานพอสมควรลองใช้ "วิธีแก้ปัญหา" Googled อื่น ๆสิ่งเดียวที่ทำงานกับฉันหลังจากตั้งค่าตัวแปรสภาพแวดล้อม ANDROID_SDK_ROOT บน Windows และยังเพิ่มและลบตัวแปร ANDROID_HOME และ ANDROID_SDK_HOME เป็นคำตอบของ Xerox23 ค่าของ ANDROID_SDK_ROOT ในคุณสมบัติ image.sysdir.1

นี่คือการใช้ Android Studio 3.0.1 และ emulator 26.1.4 เปิดตัวอุปกรณ์เสมือนจาก AVD Manager จากภายใน Android Studio


1

สำหรับเครื่องที่ใช้ windows: หลังจากลองเส้นทางที่กำหนดไว้จำนวนมากให้ลบเส้นทางและอื่น ๆ สิ่งที่ใช้งานได้ในที่สุดคือการหาที่ตั้งของโฟลเดอร์C:\Users\johndoe\.androidและลบมัน หลังจากนั้นคุณสามารถทาน Android Studio ของคุณได้มันจะขอให้คุณดาวน์โหลดและติดตั้ง AVD ใหม่และมันจะแทนที่และสร้างโฟลเดอร์ใหม่และไฟล์ใหม่ วิธีนี้แก้ปัญหาได้


สวัสดีคำแนะนำที่ดี เราทุกคนที่ติดตั้งแบบเก่าต้องทำเช่นนั้น หลังจากทำตามและล้มเหลวกับสูตรอาหารอื่น ๆ ขอบคุณ!
lm2a

1

เพื่อแก้ปัญหานี้ฉันต้องติดตั้งแพ็กเกจด้วยอิมเมจระบบที่หายไปโดยใช้ SDK Manager.exe (ใน "C: \ Program Files (x86) \ Android \ android-android-sdk") ฉันสังเกตเห็นว่าภาพระบบที่ฉันต้องการ ("android-23") หายไปใน "C: \ Program Files (x86) \ Android \ android \ android-sdk \ system-images"

หลังจากรัน SDK Manager.exe และติดตั้งแพ็คเกจที่เหมาะสมฉันสามารถเรียกใช้โปรแกรมจำลองใน Android Studio

นี่คือวิธีแก้ปัญหาสำหรับฉัน:

https://www.embarcadero.com/starthere/xe5/mobdevsetup/android/en/creating_an_android_emulator.html


1

ทำตามขั้นตอนด้านล่างนี้ควรแก้ปัญหาของคุณ

1

export ANDROID_HOME=/usr/local/Cellar/android-sdk/24.4.1
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_HOME/bin

2

Go to android studio preferences => Build, Execution, Deployment => Build Tools => Gradle => Android studio  => Enable embedded Maven Repository should be selected.

3

Go to android studio preferences => Appearance & Behavior => System Settings => Android SDK => Go to SDK Tools and select Android Emulator

1

ฉันแก้ไขปัญหานี้ด้วยการลบไฟล์/usr/local/share/android-sdkเพราะไฟล์นี้ถูกสร้างขึ้นเมื่อฉันพยายามกับ homebrew

export ANDROID_HOME=/Users/<username>/Library/Android/sdk

export ANDROID_SDK_ROOT=/Users/<username>/Library/Android/sdk

export ANDROID_AVD_HOME=/Users/<username>/.android/avd

นั่นก็เพียงพอแล้ว ....


1

เปิด android studio ของคุณแล้วมุ่งไปที่แถบเครื่องมือ

ไปที่เครื่องมือ> เครื่องมือจัดการ SDK แล้ว

ลักษณะและพฤติกรรม> การตั้งค่าระบบ> Android SDK

ตอนนี้ในแท็บคัดลอกตำแหน่ง Android SDK จากที่นี่ตำแหน่ง Android SDK

จากนั้นไปที่ตัวแปรสภาพแวดล้อมของคุณแล้วตั้งค่าเส้นทางพร้อมกับตัวแปรเหล่านี้

  1. ANDROID_HOME
  2. ANDROID_SDK_ROOT

ตัวแปรสภาพแวดล้อม


1
  1. ลบอุปกรณ์ที่สร้างขึ้นก่อนหน้านี้
  2. ปิดสตูดิโอ Android
  3. เปิด: แผงควบคุม -> ระบบและความปลอดภัย -> ระบบ -> การตั้งค่าระบบขั้นสูง -> ตัวแปรสภาพแวดล้อม
  4. สร้างตัวแปรใหม่ "ANDROID_SDK_HOME" และตั้งค่าเส้นทางใหม่ (ในกรณีของฉันคือ F: \ Coding2019 \ Android \ AVD อุปกรณ์) กด 'ตกลง'
  5. เปิด Android Studio
  6. สร้างอุปกรณ์ใหม่ หลังจากสร้างในเมนูแบบเลื่อนลงคลิก "ดูรายละเอียด" เพื่อดูเส้นทางใหม่ของ AVD ใหม่

1

ANDROID_SDK_HOME เป็นตัวชี้ไปยังรูทของไฟล์ ".android" ของคุณซึ่งโดยค่าเริ่มต้นจะถูกสร้างขึ้นที่ "C: \ Users \ name \ .android" และไม่ใช่ไปที่รูทของโฟลเดอร์ SDK ของคุณ จากนั้น: - กำหนด ANDROID_SDK_HOME ให้กับโฟลเดอร์รูท SDK จะไม่ทำงาน - หากเส้นทางของไฟล์ ".android" ของคุณมีอักขระที่ไม่ใช่ ASCII ไฟล์จะไม่ทำงาน - โฟลเดอร์ AVD จะต้องอยู่ในไฟล์ ".android" ปัจจุบันของคุณ

ดังนั้นคำตอบคือ:

  • เปลี่ยนโฟลเดอร์ SDK ของคุณหากต้องการเช่นคำตอบก่อนหน้า (ภายในโครงการบน Android Studio)
  • ปิด Android Studio
  • แผงควบคุม> ระบบ> การตั้งค่าระบบขั้นสูง> ตัวแปรสภาพแวดล้อม
  • เพิ่มตัวแปรผู้ใช้ใหม่: ชื่อตัวแปร: ANDROID_SDK_HOME ค่าตัวแปร: C: \ src (หรือโฟลเดอร์ใด ๆ ที่ไม่มีปัญหากับอักขระที่ไม่ใช่ ASCII หรือสิทธิพิเศษ SO) เส้นทางที่คุณจะไม่สามารถซ่อนรากของ SDK Android ของคุณได้ !! !
  • เปิด Android Studio ตรวจสอบให้แน่ใจว่าสร้างโฟลเดอร์ชื่อ ".android" ในตำแหน่งใหม่ของคุณ
  • ลบ Android Virtual Device (AVD) ที่คุณสร้าง
  • ปิดและเปิด Android Studio
  • สร้าง AVD ใหม่และดูความมหัศจรรย์ที่เกิดขึ้น

ไชโย


1

tried these 小伙伴注意! 原因是 avd 目录不能包含中文 ฉันลองใช้วิธีการเหล่านี้ทั้งหมดข้างต้นและฉันยังได้รับข้อผิดพลาดและฉันยังสงสัยว่าเป็นเพราะไดเรกทอรี avd ของฉันมีตัวอักษรจีน ดังนั้นฉันจึงเปลี่ยนไดเรกทอรี avd เริ่มต้นตามขั้นตอนต่อไปนี้และทำงานได้ 1. สร้างโฟลเดอร์ที่มีเส้นทางที่ไม่มีอักขระที่ไม่ใช่ ASCII 2. คัดลอกหรือตัดโฟลเดอร์ avd เริ่มต้น$HOME/.androidด้านล่างโฟลเดอร์ที่คุณเพิ่งสร้าง 3. เพิ่ม PATH ADNDROID_SDK_HOMEและสตูดิโอ Android จะพบ avd ด้านล่าง $ ADNDROID_SDK_HOME / .android / avd

ในที่สุดมันก็ทำงานออกมา! :>


1

การแก้ไขหากผู้ใช้ของคุณมีอักขระที่ไม่ใช่ ASCII

สำหรับคนที่ได้รับ " PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT" เหตุผลนี้อาจเป็นไปได้ว่าผู้ใช้ของคุณผู้ใช้มีไม่ใช่ ASCIIตัวอักษร

ดังนั้นต้องย้ายทั้งโฟลเดอร์SDKและ. android พร้อมโฟลเดอร์AVDไปยังโฟลเดอร์อื่น

การเปลี่ยนเส้นทาง SDK:

เปิดAndroid Studioไปที่กำหนดค่าแล้วเลือก SDK Manager เปลี่ยนปัจจุบัน Android SDK สถานที่ตั้งไปเช่น "C: \ Android \ SDK ของ" (หรือที่อื่นเพียงแค่ไม่ได้อยู่ในการใช้โฟลเดอร์ที่มีอักขระที่ไม่ใช่ ASCII)

หลังจากนี้เพิ่มตัวแปรระบบต่อไปนี้:

ANDROID_SDK_ROOT C:\Android\Sdk
ANDROID_HOME C:\Android\Sdk

การเปลี่ยนเส้นทาง AVD:

ในการเปลี่ยนตำแหน่งที่วางโฟลเดอร์ AVD (โดยปกติจะอยู่ใน " C:\Users\<user name>\.android\avd") คุณจะต้องเปลี่ยนตำแหน่งที่.androidจะวาง ก่อนปิดAndroid Studioจากนั้นเพิ่มตัวแปรระบบANDROID_SDK_HOMEด้วยพา ธ ไปยังตำแหน่งใหม่ที่คุณต้องการ.androidเช่นC:\Android_SDK_HOMEใช้ในตัวอย่างอื่น:

ANDROID_SDK_HOME C:\Android_SDK_HOME

หลังจากที่คุณเพิ่มนี้รันAndroid สตูดิโอ จากนั้นปิดอีกครั้ง ตอนนี้โฟลเดอร์ที่เรียกว่า.androidควรจะปรากฏขึ้น

สิ่งต่อไปและสุดท้ายที่คุณต้องทำคือการตั้งค่าANDROID_AVD_HOMEตัวแปรระบบ ในกรณีนี้ที่จะเป็นในC:\Android_SDK_HOME\.android\avd

ANDROID_AVD_HOME C:\Android_SDK_HOME\.android\avd

ฉันหวังว่านี่จะช่วยแก้ปัญหาสำหรับบางคน :)


ขอบคุณมากครับ ฉันเพิ่ง googling ปัญหานี้และมาโพสต์ใหม่ของคุณและใช้งานได้!
JangoCG

0

ฉันพบปัญหานี้ตั้งแต่ฉันทำ React Native มาตั้งแต่สมัยแรก ๆ Google เลิกใช้เครื่องมือ commandline และยืนยันใน Android studio ทางออกสำหรับฉันคือการลบเครื่องมือ commandline

rm -rf /usr/local/Cellar/android-sdk

rm /usr/local/bin/android

เปิด AS install sdk v6 ตามคำแนะนำhttps://facebook.github.io/react-native/docs/getting-started.html#1-install-android-studio

สร้าง AVD ใหม่และจะเปิดขึ้นโดยไม่มีข้อผิดพลาด


0

ข้อผิดพลาดจริงแตกต่างกันไป การเรียกใช้./emulator with -verboseตัวเลือกมีประโยชน์เนื่องจากจะแสดงข้อผิดพลาดจริง

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