在通过 Android Studio 安装 Android SDK 后,当我尝试在 Mac OS Catalina 中的 VS Code 上模拟 Android 时,它返回消息:Invalid Argument(s): Cannot find executable for null。 我已经创建了指向同一目录的环境变量 ANDROID_SDK_ROOT 和 ANDROID_HOME:/Users/anderson/Library/Android/sdk 但我没有成功。
flutter 医生诊断:
anderson@MacBook-Pro-de-Anderson ~ % flutter 医生 医生摘要(要查看所有详细信息,请运行 flutter doctor -v):
[✓] Flutter (Channel stable, v1.12.13+hotfix.9, on Mac OS X 10.15.4 19E266, 语言环境 en-BR)
[✓] Android 工具链 - 为 Android 设备开发(Android SDK 版本 29.0.3)
[✓] Xcode - 为 iOS 和 macOS 开发 (Xcode 11.4)
[✓] Android Studio(3.6 版)
[✓] VS 代码(版本 1.43.2) [!] 连接的设备 !没有可用的设备
!医生发现了 1 类问题。 anderson@MacBook-Pro-de-Anderson~%
最佳答案
您可以通过命令行 flutter emulator --create flutteremu
或在 Visual Studio Code 中使用 Flutter: Launch Emulator 来获取此错误。
Oops; flutter has exited unexpectedly: "Invalid argument(s): Cannot find executable for null.".
尽管 flutter doctor
告诉您一切正常,但您仍然收到此错误。
有一个日志文件,其中详细说明了错误 here .
如果深入挖掘,您会发现以下 Android 命令行工具不起作用:
avdmanager
No Java runtime present, requesting install.
呜呜呜呜。因此尽管 Android SDK 中充满了 Java,您仍然需要安装单独的 Java 来运行一些命令行命令。 如果您安装了错误版本的 Java,Android SDK 可能无法工作。这是通过 Homebrew 安装的一个众所周知的版本:
# Install Java 8 and Android SDK
brew tap homebrew/cask-versions
# See details here https://stackoverflow.com/a/61521063/315168
brew cask install adoptopenjdk/openjdk/adoptopenjdk8
检查 Java 现在是否工作:
java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.252-b09, mixed mode)
现在在您的 shell 中确保您拥有所有正确的环境变量。
export JAVA_HOME=$(/usr/libexec/java_home)
export ANDROID_HOME=/Users/$USER/Library/Android/sdk
export ANDROID_SDK_ROOT=/Users/$USER/Library/Android/sdk
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
然后再次运行avdmanager
:
avdmanager list
现在您应该可以启动支持 Flutter 的模拟器了:
flutter emulator --create flutteremu
No suitable Android AVD system images are available. You may need to install these using sdkmanager, for example:
sdkmanager "system-images;android-27;google_apis_playstore;x86"
所以让我们安装图像:
sdkmanager "system-images;android-27;google_apis_playstore;x86"
现在 Flutter 应该可以启动模拟器了:
flutter emulator --create flutteremu
最后它会起作用:
Emulator 'flutter_emulator' created successfully.
关闭所有正在运行的 Visual Studio Code。 从 shell 启动 Visual Studio Code 并显式设置 VSCode 进程的环境变量:
export JAVA_HOME=$(/usr/libexec/java_home)
export ANDROID_HOME=/Users/$USER/Library/Android/sdk
export ANDROID_SDK_ROOT=/Users/$USER/Library/Android/sdk
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
code
现在 Flutter: Launch Emulator 可以工作了。
关于android - 在 VS Code 上模拟 Android 时为 "Invalid Argument(s): Cannot find executable for null"- Mac OS X,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61036745/