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:8390ba4ca92. 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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user