Android env: require JDK 21/17 by version, since Studio now bundles JBR 25
Check each JDK candidate's major version instead of assuming Android Studio's
JBR is 21, look for Adoptium temurin-{21,17}-jdk (Fedora 44 dropped
java-21-openjdk), and propagate android-env.sh failures to scripts that
source it so fdroid-publish.sh stops before building.
This commit is contained in:
@@ -36,19 +36,24 @@ _mtgc_android_env() {
|
||||
return 1
|
||||
fi
|
||||
|
||||
# --- JDK: Gradle/AGP reject very new JDKs; prefer Studio's bundled JBR 21 ---
|
||||
# --- JDK: Gradle/AGP reject very new JDKs. Studio's bundled JBR is preferred,
|
||||
# but newer Studio releases bundle JBR 25, so check each candidate's version.
|
||||
for d in \
|
||||
"$HOME/.local/share/JetBrains/Toolbox/apps/android-studio/jbr" \
|
||||
"$HOME/.local/share/JetBrains/Toolbox/apps/android-studio"/*/jbr \
|
||||
"$HOME/android-studio/jbr" \
|
||||
/opt/android-studio/jbr \
|
||||
/usr/lib/jvm/java-21-openjdk /usr/lib/jvm/java-21-openjdk-* \
|
||||
/usr/lib/jvm/java-17-openjdk /usr/lib/jvm/java-17-openjdk-*
|
||||
/usr/lib/jvm/java-21-openjdk /usr/lib/jvm/java-21-openjdk-* /usr/lib/jvm/temurin-21-jdk* \
|
||||
/usr/lib/jvm/java-17-openjdk /usr/lib/jvm/java-17-openjdk-* /usr/lib/jvm/temurin-17-jdk*
|
||||
do
|
||||
if [ -x "$d/bin/javac" ]; then jdk="$d"; break; fi
|
||||
[ -x "$d/bin/javac" ] || continue
|
||||
case "$(sed -n 's/^JAVA_VERSION="\([0-9]*\).*/\1/p' "$d/release" 2>/dev/null)" in
|
||||
21 | 17) jdk="$d"; break ;;
|
||||
esac
|
||||
done
|
||||
if [ -z "$jdk" ]; then
|
||||
echo "android-env: no JDK 21/17 found (Gradle rejects the system default)" >&2
|
||||
echo "android-env: no JDK 21/17 found (Gradle rejects newer ones, incl. Studio's JBR 25)" >&2
|
||||
echo "android-env: sudo dnf install temurin-21-jdk" >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
@@ -67,4 +72,7 @@ _mtgc_android_env() {
|
||||
}
|
||||
|
||||
_mtgc_android_env
|
||||
_mtgc_rc=$?
|
||||
unset -f _mtgc_android_env
|
||||
# Pass the failure on so `set -e` scripts that source this stop here.
|
||||
return "$_mtgc_rc" 2>/dev/null || exit "$_mtgc_rc"
|
||||
|
||||
Reference in New Issue
Block a user