尽管设置了 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 没有任何问题。但是,我希望不必手动输入(并且必须从命令行手动重新加载并使用 rq 退出应用程序)。

如何查看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/ 设置了两个软链接Dartflutter-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 对“颤振模拟器”不可见的主要内容,如果未能解决你的问题,请参考以下文章

电流环和速度环怎么调试,需要对那些参数进行设置呢?

Flutter 使用不同的浏览器

ospf中提到环回接口是啥?怎样设置环回接口?

华为手环添加加密门禁卡 华为手环添加加密门禁卡怎么设置

为什么代理属性设置成assign为了防止生成保留环来

尽管设置了密码,但 MySQL 允许无密码连接