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: https://github.com/rclone/rclone/commit/8390ba4ca9f18fea546ecdfdf8f86aed5c36030f 2. is the minimum ABI used by probe-android: https://github.com/ooni/probe-android/blob/994651be52ff75ee3a00dba499ec7c7b40ab25c1/app/build.gradle#L10 Part of https://github.com/ooni/probe/issues/2130
This commit is contained in:
+15
-1
@@ -42,6 +42,14 @@ else
|
||||
OONI_PSIPHON_TAGS=""
|
||||
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)
|
||||
|
||||
function cleanup() {
|
||||
@@ -51,11 +59,17 @@ function cleanup() {
|
||||
trap cleanup EXIT
|
||||
|
||||
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 env GOPATH)/bin/gomobile init
|
||||
# Adding gomobile to go.mod as documented by golang.org/wiki/Mobile
|
||||
go get -d golang.org/x/mobile/cmd/gomobile
|
||||
|
||||
$(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
|
||||
|
||||
Reference in New Issue
Block a user