ОБНОВЛЕНО: я удалил установщик Chrome, чтобы убедиться, что я правильно настроил эмулятор
#!/usr/bin/env python3
"""
create_emu_v2.py
Interactive script to list, install, and create Android Virtual Devices (AVDs)
without needing to type full package names.
Requirements:
- Android SDK command-line tools (sdkmanager, avdmanager, emulator)
- ANDROID_SDK_ROOT or ANDROID_HOME must point to your SDK
"""
import os
import subprocess
import shutil
import sys
import shlex
def find_tools():
sdk_root = os.environ.get("ANDROID_SDK_ROOT") or os.environ.get("ANDROID_HOME")
tools = {}
candidates = {
"sdkmanager": [
"sdkmanager",
os.path.join(sdk_root, "cmdline-tools", "latest", "bin", "sdkmanager") if sdk_root else "",
os.path.join(sdk_root, "tools", "bin", "sdkmanager") if sdk_root else "",
],
"avdmanager": [
"avdmanager",
os.path.join(sdk_root, "cmdline-tools", "latest", "bin", "avdmanager") if sdk_root else "",
os.path.join(sdk_root, "tools", "bin", "avdmanager") if sdk_root else "",
],
"emulator": [
"emulator",
os.path.join(sdk_root, "emulator", "emulator") if sdk_root else "",
]
}
for key, paths in candidates.items():
for p in paths:
if p and shutil.which(p):
tools[key] = shutil.which(p)
break
return tools
def run_cmd(cmd, capture=False):
print("+ " + " ".join(shlex.quote(c) for c in cmd))
if capture:
return subprocess.check_output(cmd, text=True, stderr=subprocess.STDOUT)
else:
subprocess.check_call(cmd)
def list_system_images(sdkmanager):
print("\n
output = run_cmd([sdkmanager, "--list"], capture=True)
# Filter system-image lines
lines = [l.strip() for l in output.splitlines() if "system-images;" in l]
images = [l.split(" ")[0] for l in lines if "system-images;" in l]
if not images:
print("
sys.exit(1)
print("Available system images:\n")
for i, img in enumerate(images, 1):
print(f"{i:>3}. {img}")
print()
return images
def create_avd(avdmanager, name, package, device=None):
print(f"\n
cmd = [avdmanager, "create", "avd", "--force", "--name", name, "--package", package]
if device:
cmd += ["--device", device]
p = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True)
out, _ = p.communicate(input="no\n")
print(out)
if p.returncode != 0:
print("
sys.exit(1)
print(f"
def main():
print("=== Android Emulator Creator v2 ===\n")
tools = find_tools()
if not tools.get("sdkmanager") or not tools.get("avdmanager"):
print("
print("Please ensure ANDROID_SDK_ROOT or ANDROID_HOME is set and includes cmdline-tools.")
sys.exit(1)
sdkmanager = tools["sdkmanager"]
avdmanager = tools["avdmanager"]
emulator = tools.get("emulator", "emulator")
# List system images
images = list_system_images(sdkmanager)
# Ask user for choice
choice = input("Enter number of system image to install (or paste package name): ").strip()
if choice.isdigit() and 1
Подробнее здесь: https://stackoverflow.com/questions/797 ... e-versions
Мобильная версия