fix: repair the Android build (#905)
Rather than hardcoding the NDK version inside a script, encode it as a file in the filesystem, which is easier to share. Make sure we use the desired NDK by setting environment variables. Use `-androidabi 21`, which: 1. is what rclone did:8390ba4ca9
2. is the minimum ABI used by probe-android:994651be52/app/build.gradle (L10)
Part of https://github.com/ooni/probe/issues/2130
This commit is contained in:
parent
9e38ee5135
commit
42b547d311
1
.github/workflows/android.yml
vendored
1
.github/workflows/android.yml
vendored
|
@ -5,6 +5,7 @@ on:
|
||||||
branches:
|
branches:
|
||||||
- "release/**"
|
- "release/**"
|
||||||
- "fullbuild"
|
- "fullbuild"
|
||||||
|
- "androidbuild"
|
||||||
tags:
|
tags:
|
||||||
- "v*"
|
- "v*"
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ set -euo pipefail
|
||||||
|
|
||||||
__install_extra="build-tools;32.0.0 platforms;android-31"
|
__install_extra="build-tools;32.0.0 platforms;android-31"
|
||||||
|
|
||||||
__ndk_version="23.1.7779620"
|
__ndk_version=$(cat ./NDKVERSION)
|
||||||
|
|
||||||
ANDROID_HOME=$(./MOBILE/android/home)
|
ANDROID_HOME=$(./MOBILE/android/home)
|
||||||
|
|
||||||
|
|
|
@ -42,6 +42,14 @@ else
|
||||||
OONI_PSIPHON_TAGS=""
|
OONI_PSIPHON_TAGS=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
MAYBE_ANDROID_API=""
|
||||||
|
if [[ $TARGET == "android" ]]; then
|
||||||
|
ANDROID_HOME=$(./MOBILE/android/home)
|
||||||
|
NDK_VERSION=$(cat NDKVERSION)
|
||||||
|
ANDROID_NDK_HOME=$ANDROID_HOME/ndk/$NDK_VERSION
|
||||||
|
MAYBE_ANDROID_API="-androidapi 21"
|
||||||
|
fi
|
||||||
|
|
||||||
PRODUCT=$(basename $PACKAGE)
|
PRODUCT=$(basename $PACKAGE)
|
||||||
|
|
||||||
function cleanup() {
|
function cleanup() {
|
||||||
|
@ -51,11 +59,17 @@ function cleanup() {
|
||||||
trap cleanup EXIT
|
trap cleanup EXIT
|
||||||
|
|
||||||
set -x
|
set -x
|
||||||
|
|
||||||
|
# for documenting the environ variables used by the build
|
||||||
|
export ANDROID_HOME=$ANDROID_HOME
|
||||||
|
export ANDROID_NDK_HOME=$ANDROID_NDK_HOME
|
||||||
|
|
||||||
go install golang.org/x/mobile/cmd/gomobile@latest
|
go install golang.org/x/mobile/cmd/gomobile@latest
|
||||||
$(go env GOPATH)/bin/gomobile init
|
$(go env GOPATH)/bin/gomobile init
|
||||||
# Adding gomobile to go.mod as documented by golang.org/wiki/Mobile
|
# Adding gomobile to go.mod as documented by golang.org/wiki/Mobile
|
||||||
go get -d golang.org/x/mobile/cmd/gomobile
|
go get -d golang.org/x/mobile/cmd/gomobile
|
||||||
|
|
||||||
$(go env GOPATH)/bin/gomobile bind -target $TARGET \
|
$(go env GOPATH)/bin/gomobile bind -target $TARGET \
|
||||||
-o ./MOBILE/$TARGET/$PRODUCT.$EXT -tags="$OONI_PSIPHON_TAGS" \
|
-o ./MOBILE/$TARGET/$PRODUCT.$EXT $MAYBE_ANDROID_API \
|
||||||
|
-tags="$OONI_PSIPHON_TAGS" \
|
||||||
-ldflags '-s -w' ${GOLANG_EXTRA_FLAGS:-} $PACKAGE
|
-ldflags '-s -w' ${GOLANG_EXTRA_FLAGS:-} $PACKAGE
|
||||||
|
|
1
NDKVERSION
Normal file
1
NDKVERSION
Normal file
|
@ -0,0 +1 @@
|
||||||
|
25.1.8937393
|
Loading…
Reference in New Issue
Block a user