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:
Simone Basso 2022-08-29 18:51:25 +02:00 committed by GitHub
parent 9e38ee5135
commit 42b547d311
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 18 additions and 2 deletions

View File

@ -5,6 +5,7 @@ on:
branches:
- "release/**"
- "fullbuild"
- "androidbuild"
tags:
- "v*"

View File

@ -4,7 +4,7 @@ set -euo pipefail
__install_extra="build-tools;32.0.0 platforms;android-31"
__ndk_version="23.1.7779620"
__ndk_version=$(cat ./NDKVERSION)
ANDROID_HOME=$(./MOBILE/android/home)

View File

@ -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

1
NDKVERSION Normal file
View File

@ -0,0 +1 @@
25.1.8937393