Created
April 27, 2020 07:50
-
-
Save pgreze/a76970274c4fe369f08b77317fec720c to your computer and use it in GitHub Desktop.
Force ANDROID SDK in gradlew
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/gradle/android-studio-paths.sh b/gradle/android-studio-paths.sh | |
new file mode 100644 | |
index 0000000..ae3d1e0 | |
--- /dev/null | |
+++ b/gradle/android-studio-paths.sh | |
@@ -0,0 +1,51 @@ | |
+# | |
+# In order to avoid "Daemon could not be reused" when using command line and Android Studio, | |
+# this is forcing the JAVA_HOME by looking at common places for Android Studio installations. | |
+# | |
+# This can be overriden by providing android_studio.dir in your local.properties. | |
+# | |
+# Inspired by https://adambennett.dev/2020/03/scripting-file-templates-for-android-studio/ | |
+# | |
+ | |
+function resolveUserAndroidLocation { | |
+ local PREFIX="android_studio.dir=" | |
+ local ANDROID_STUDIO_DIR=$(grep $PREFIX local.properties) | |
+ local PREFIX_LENGTH=${#PREFIX} | |
+ [ ! -z "$ANDROID_STUDIO_DIR" ] && echo "${ANDROID_STUDIO_DIR:$PREFIX_LENGTH}" | |
+} | |
+ | |
+function detectAndroidStudios { | |
+ # Jetbrains Toolbox | |
+ find ~/Library/Application\ Support/JetBrains/Toolbox/apps/AndroidStudio \( -name "*Android Studio*.app" \) -maxdepth 3 -type d | |
+ # Manual installations | |
+ find /Applications \( -name "*Android Studio*.app" \) -maxdepth 1 -type d | |
+} | |
+ | |
+function setJavaHomeFromAndroidStudio { | |
+ if [ ! -z $CI ]; then | |
+ return | |
+ fi | |
+ | |
+ ANDROID_STUDIO_DIRS=$(detectAndroidStudios) | |
+ ANDROID_STUDIO_DIR=$(resolveUserAndroidLocation) | |
+ if [ -z "$ANDROID_STUDIO_DIR" ]; then | |
+ if [ ${#ANDROID_STUDIO_DIRS[@]} -eq 1 ]; then | |
+ # Fallback to the only Android Studio location | |
+ ANDROID_STUDIO_DIR="${ANDROID_STUDIO_DIRS[0]}" | |
+ else | |
+ echo "Missing android_studio.dir= in local.properties" 1>&2 | |
+ printf "Detected installations:\n$ANDROID_STUDIO_DIRS\n" 1>&2 | |
+ return 1 | |
+ fi | |
+ fi | |
+ | |
+ ANDROID_STUDIO_JAVA_HOME="$ANDROID_STUDIO_DIR/Contents/jre/jdk/Contents/Home" | |
+ | |
+ if [ ! -d "$ANDROID_STUDIO_JAVA_HOME" ]; then | |
+ echo "Invalid Android Studio path $ANDROID_STUDIO_JAVA_HOME" 1>&2 | |
+ return 1 | |
+ else | |
+ # Export the value as env variable for Gradle | |
+ export JAVA_HOME="$ANDROID_STUDIO_JAVA_HOME" | |
+ fi | |
+} | |
diff --git a/gradlew b/gradlew | |
index 2fe81a7..60dae73 100755 | |
--- a/gradlew | |
+++ b/gradlew | |
@@ -16,6 +16,10 @@ | |
# limitations under the License. | |
# | |
+#. gradle/android-studio-paths.sh | |
+#setJavaHomeFromAndroidStudio || exit 1 | |
+echo "$(type java && java -version) $@" >> /Users/pgreze/git/mercari-groundup-android/logs.txt | |
+ | |
############################################################################## | |
## | |
## Gradle start up script for UN*X |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment