我正在编写一个自动模拟器脚本,该脚本将创建并启动一个Android模拟器,以便可以在任何计算机上运行UI测试,并确保它可以在设备上运行。
我当前的脚本创建了一个android-27;google_apis;x86设备,该设备运行良好,但缺少google服务,因此我的应用程序中的地图无法显示。
我尝试使用google_apis_playstore创建模拟器,但是当设备启动时,它会提示并带有ADB调试提示。 通常,轻按此按钮是可以的,但是我希望能够在无头服务器上运行此命令,并且永远无法这样做。
无论如何, 无需创建ADB对话框即可创建具有google API和地图的模拟器?
这是我当前的shell脚本
#!/bin/sh
# Run this script in root project dir
# Kill existing emulator
$ANDROID_HOME/platform-tools/adb devices | grep emulator | cut -f1 | while read line; do $ANDROID_HOME/platform-tools/adb -s $line emu kill; done
# Install system image
$ANDROID_HOME/tools/bin/sdkmanager "system-images;android-27;google_apis;x86"
yes | $ANDROID_HOME/tools/bin/sdkmanager --licenses
# Create emulator
echo "no" | $ANDROID_HOME/tools/bin/avdmanager create avd -f \
-n "tester" \
-k 'system-images;android-27;google_apis;x86' \
-b x86 \
-d "Nexus 5X"
# Start emulator
$ANDROID_HOME/emulator/emulator -avd tester &
# Wait for emulator to start
$ANDROID_HOME/platform-tools/adb wait-for-device shell input keyevent 82
while [ "`$ANDROID_HOME/platform-tools/adb shell getprop sys.boot_completed | tr -d '\r' `" != "1" ] ; do sleep 1; done
sleep 5;
使用google_apis_playstore时出现错误,因为它无法通过对话框来检查模拟器是否已启动。
error: device unauthorized.
This adb server's $ADB_VENDOR_KEYS is not set
Try 'adb kill-server' if that seems wrong.
Otherwise check for a confirmation dialog on your device.
似乎很傻,您需要接受仿真器的调试权限?