【问题标题】:Unable to start emulator from command line无法从命令行启动模拟器
【发布时间】:2019-10-31 15:08:46
【问题描述】:

我正在尝试运行以下 shell 脚本:

#!/usr/bin/env bash

sdkmanager "emulator" "system-images;android-28;google_apis_playstore;x86_64"
echo no | avdmanager create avd -n "Android" -k "system-images;android-28;google_apis_playstore;x86_64" --device 'Nexus 6P'
$ANDROID_HOME/tools/emulator -avd Android -no-audio -no-boot-anim -no-snapshot -timezone Asia/Phnom_penh

我已将 ANDROID_HOME、ANDROID_AVD_HOME 添加到我的 PATH 中(注意:我正在使用带有 zsh 的 macos)并且我已经获取了 zshrc 文件并重新启动了终端,但不断收到以下错误:

./start_emulator.sh:第 3 行:sdkmanager:找不到命令

./start_emulator.sh:第 4 行:avdmanager:找不到命令

PANIC:未知的 AVD 名称 [ANDROID],使用 -list-avds 查看有效列表。 ANDROID_AVD_HOME 已定义,但 $ANDROID_AVD_HOME/.android/avd 中没有文件 Android.ini(注意: 目录按 $ANDROID_AVD_HOME 的顺序搜索, $ANDROID_SDK_HOME/avd 和 $HOME/.android/avd)

【问题讨论】:

  • 你在哪里定义了PATH变量?您是否在特定于 shell 的配置文件中定义?这也可能是因为您已将脚本定义为在 bash 中运行,而不是在脚本的第一行中看到的默认 zsh shell,并且您可能仅在 zsh 配置中配置了 PATH 变量。跨度>
  • 但是我使用zsh作为我的默认shell(所以我只将它添加到我的zshrc文件中),我还需要将它添加到bashrc文件吗?
  • 这里的解决方案是更改您用于运行脚本的 shell。有关更多信息,请参阅本指南了解什么是 shebang:bash.cyberciti.biz/guide/Shebang(在这种情况下,只需更改 @987654325 @ 到 zsh,你很高兴!)
  • 改成#!/bin/zsh后,错误依然存在。此外,我还收到错误消息:Broken AVD system path.
  • 但是正如我在原始评论中提到的,你在哪里定义了 PATH 变量,你是如何定义它的,以及其他环境变量?跨度>

标签: android android-emulator android-sdk-manager avd-manager


【解决方案1】:

将 shell 脚本更改为以下内容即可:

 #!/bin/zsh

cd $ANDROID_HOME/tools/bin
./sdkmanager "emulator" "system-images;android-28;google_apis_playstore;x86_64"

echo no | ./avdmanager create avd -n "Android" -k "system-images;android-28;google_apis_playstore;x86_64" --device 'Nexus 6P' 

$ANDROID_HOME/tools/emulator -avd Android -no-audio-no-boot-anim -no-snapshot -timezone Asia/Phnom_penh

也单独运行命令(在移动到文件夹之后)似乎工作。不确定它是否是权限问题。

【讨论】:

    猜你喜欢
    • 2017-09-23
    • 2014-11-19
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 2012-01-10
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    相关资源
    最近更新 更多