尽管设置了 CHROME_EXECUTABLE 环境变量,但 Chrome 对“颤振模拟器”不可见
Posted
技术标签:
【中文标题】尽管设置了 CHROME_EXECUTABLE 环境变量,但 Chrome 对“颤振模拟器”不可见【英文标题】:Chrome not visible to 'flutter emulators' despite having set CHROME_EXECUTABLE env variable 【发布时间】:2021-07-24 10:12:21 【问题描述】:我希望在 android Studio 的可用设备下拉列表中看到 Google Chrome。我在 Arch Linux 上运行 Gnome,我的默认 shell 是 ZSH。
我是这样安装 Flutter + Android Studio 的:
yay -S glu google-chrome
yay -S flutter # (with JDK 11)
sudo gpasswd -a $(whoami) flutterusers
sudo chown -R :flutterusers /opt/flutter
sudo chmod -R g+w /opt/flutter/
echo 'export CHROME_EXECUTABLE="'$(which google-chrome-stable)'"' >> ~/.zshrc
flutter doctor
flutter upgrade
yay -S android-studio # (then I followed the Android Studio setup wizard, and also installed the Flutter and Dart plugins)
flutter doctor --android-licenses
flutter config --enable-web
我退出了我的 Gnome 会话并重新登录,只是为了确保现在应用了每个配置更改。我还打开和关闭了谷歌浏览器,以防万一。
使用 Android Studio 打开现有的 Flutter 项目仅显示名为“Pixel 3a API 30 x86”的设备,但没有显示名为“Google Chrome”或类似设备的设备。
从 shell 运行 flutter emulators
命令时也是如此,即使同一个 shell 将 CHROME_EXECUTABLE
设置为有效的 Chrome 可执行文件:
1 available emulator:
Pixel_3a_API_30_x86 • Pixel_3a_API_30_x86 • Google • android
To run an emulator, run 'flutter emulators --launch <emulator id>'.
To create a new emulator, run 'flutter emulators --create [--name xyz]'.
You can find more information on managing emulators at the links below:
https://developer.android.com/studio/run/managing-avds
https://developer.android.com/studio/command-line/avdmanager
flutter doctor -v
的输出在我看来不错,甚至在可用的连接设备中提到了 Chrome:
[✓] Flutter (Channel stable, 2.0.6, on Linux, locale en_US.UTF-8)
• Flutter version 2.0.6 at /opt/flutter
• Framework revision 1d9032c7e1 (32 hours ago), 2021-04-29 17:37:58 -0700
• Engine revision 05e680e202
• Dart version 2.12.3
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
• Android SDK at /home/ggiuffre/Android/Sdk
• Platform android-30, build-tools 30.0.3
• Java binary at: /opt/android-studio/jre/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
• All Android licenses accepted.
[✓] Chrome - develop for the web
• CHROME_EXECUTABLE = /usr/bin/google-chrome-stable
[✓] Android Studio
• Android Studio at /opt/android-studio
• Flutter plugin can be installed from:
???? https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
???? https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
[✓] Connected device (1 available)
• Chrome (web) • chrome • web-javascript • Google Chrome 90.0.4430.93
• No issues found!
事实上,我可以在 Chrome 上运行 Flutter 应用程序,而从命令行使用 flutter run -d chrome
没有任何问题。但是,我希望不必手动输入(并且必须从命令行手动重新加载并使用 r
和 q
退出应用程序)。
如何查看flutter emulators
和 Android Studio 下拉列表中列出的 Google Chrome,以便通过按 Android Studio 的播放按钮轻松运行 Flutter 应用?
更新
调用flutter emulators
时没有列出 Chrome 是有道理的,因为 Chrome 不是 Android 模拟器。事实上,调用flutter devices
时会列出 Chrome。鉴于此,我的问题将变成:如何让 Android Studio 在我提到的下拉菜单下同时显示模拟器和任何其他设备(特别是 Chrome)?
【问题讨论】:
【参考方案1】:chrome
设备没有出现在 Android Studio 中,因为您没有安装 Flutter 插件:
[✓] Android Studio
• Android Studio at /opt/android-studio
• Flutter plugin can be installed from:
? https://plugins.jetbrains.com/plugin/9212-flutter <============
• Dart plugin can be installed from:
? https://plugins.jetbrains.com/plugin/6351-dart <============
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
默认情况下,附加插件安装在文件夹 ~/.local/share/Google/AndroidStudio 中。此文件夹的权限可能有问题。
【讨论】:
谢谢。.local/share/Google/AndroidStudio4.1/
归我的用户所有。我看到 Flutter 医生说 Android Studio 安装在由 root 拥有的/opt/android-studio
,所以我给了我的用户对该目录的读/写权限,并从.local/share/Google/AndroidStudio4.1/
设置了两个软链接Dart
和flutter-intellij
到/opt/android-studio/plugins/
。不幸的是,Flutter Doctor 仍然抱怨没有安装这两个插件,Android Studio 仍然没有在下拉菜单中显示 Chrome 设备。
@Giorgio 顺便说一句,您确定项目是以Flutter project
而不是Android project
打开的吗?
在“项目”侧边栏中,我可以在我的项目名称旁边看到 Flutter 徽标,因此我认为 Android Studio 正确地将我的项目识别为 Flutter 项目。
你对从 android studio 开始菜单创建的项目有同样的问题吗? (即创建新的颤振项目)
值得尝试从命令行启动 Android Studio - 控制台中可能有一些错误。【参考方案2】:
只是为了澄清。
Linux 适用于环境,如果你在 shell 中设置变量 CHROME_EXECUTABLE ,如果你从 shell 打开你的 IDE 将工作,但如果你想永久修复它,你必须像这样修改 IDE dart.env
"dart.env": "CHROME_EXECUTABLE": "/path of your chrome or chromium browser"
该环境适用于 VScode,但我想你可以为 android studio 做同样的事情。
【讨论】:
以上是关于尽管设置了 CHROME_EXECUTABLE 环境变量,但 Chrome 对“颤振模拟器”不可见的主要内容,如果未能解决你的问题,请参考以下文章