capacitor: bug: CAPACITOR_ANDROID_STUDIO_PATH does not work with JetBrains toolbox managed shell scripts.
Bug Report
Capacitor Version
Latest Dependencies:
@capacitor/cli: 3.3.2
@capacitor/core: 3.3.2
@capacitor/android: 3.3.2
@capacitor/ios: 3.3.2
Installed Dependencies:
@capacitor/cli: 3.3.2
@capacitor/android: 3.3.2
@capacitor/core: 3.3.2
@capacitor/ios: 3.3.2
Platform(s)
MacOs
Current Behavior
JetBrains ToolBox has integrated shell scripts that point to the latest Android studio version installed. (see here). This is done because each release incorporates the build ID on the path, so a hard coded path will always break after a version update.
Setting the path of the generated studio.sh
script into CAPACITOR_ANDROID_STUDIO_PATH
fails with:
[error] Unable to launch Android Studio. Is it installed?
Attempted to open Android Studio at: /usr/local/bin/studio.sh
You can configure this with the CAPACITOR_ANDROID_STUDIO_PATH environment variable.
Expected Behavior
We could be able to give this script to open capacitor projects.
Code Reproduction
–
Other Technical Details
The generated script looks like this:
#!/bin/bash
#Generated by JetBrains Toolbox 1.22.10740 at 2021-11-18T10:21:56.087264
declare -a ideargs=()
declare -- wait=""
for o in "$@"; do
if [[ "$o" = "--wait" || "$o" = "-w" ]]; then
wait="-W"
o="--wait"
fi
if [[ "$o" =~ " " ]]; then
ideargs+=("\"$o\"")
else
ideargs+=("$o")
fi
done
open -na "/Users/my-user/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/203.7784292/Android Studio.app/Contents/MacOS/studio" $wait --args "${ideargs[@]}"%
About this issue
- Original URL
- State: open
- Created 3 years ago
- Reactions: 12
- Comments: 15 (3 by maintainers)
You can put this in your
.zshrc
or.bashrc
as a workaround:It would be better if that location is checked as well by default on Apple hardware.
I use MacOS and I had to remove quotes from the first line for it to work. Thanks for sharing!
I’m using this in
.zshrc
export CAPACITOR_ANDROID_STUDIO_PATH="$HOME/Applications/Android Studio.app/Contents/MacOS/studio"
Working on Mac M2! Hope it helps! 🙏🏼
Jetbrains Toolbox now seems to helpfully place files here on macOS:
$HOME/Applications/JetBrains\ Toolbox/Android\ Studio.app/Contents/MacOS/jetbrains-toolbox-launcher
So there’s no need to mess with identifying the version and such anymore.
If it’s as simple as running this script, I definitely think that capacitor should automatically check this path as well.
Different form of “not work” - I get Finder windows?
I’ve got my JetBrains products installed via Toolbox. If I manually open Studio and then open the project’s
android
directory my project runs. But of course if I just usenpx cap open android
then I getAttempted to open Android Studio at: /Applications/Android Studio.app
and nothing happens.I can’t easily set the
androidStudioToolboxVersion
as suggested by @butaminas because Toolbox has installed multiple versions in theandroidStudioToolboxBase
directory.So, I set up Toolbox to generate scripts and set the env var in my
.zshrc:
to point at the Toolbox’s script:Now, from a terminal command line I can simply execute
$CAPACITOR_ANDROID_STUDIO_PATH
and Studio launches nicely. But, when usingnpx cap open android
from my project’s root rather than getting Studio, I get one or two Finder windows launched - the Finder windows are on my project’s android directory and on my project’s root directory.I’m a Mac-newbie (M1 Mac Mini, macOS Monterey 12.4), so maybe I’m missing something obvious …
If I manually open Studio and then open the project’s android directory my project runs.
Same problem here with Mac M1. I have to open Android studio manually.