你正在使用的Go版本是什么( go version
)?
$ go version
go version go1.20.1 linux/amd64
这个问题在最新版本的发布中是否重现?
是的
你正在使用什么操作系统和处理器架构( go env
)?
go env
输出
$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/zergon321/.cache/go-build"
GOENV="/home/zergon321/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/zergon321/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/zergon321/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/lib/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.20.1"
GCCGO="gccgo"
GOAMD64="v1"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/dev/null"
GOWORK=""
CGO_CFLAGS="-O2 -g"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-O2 -g"
CGO_FFLAGS="-O2 -g"
CGO_LDFLAGS="-O2 -g"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build824783065=/tmp/go-build -gno-record-gcc-switches"
你做了什么?
我通过Android Studio安装了 golang.org/x/mobile 和最新的Android SDK和NDK。然后我下载了openal-soft源代码。在此之后,我运行了:
ANDROID_PLATFORM=android-25 ANDROID_HOME=~/Android/Sdk/ ANDROID_NDK_HOME=~/Android/Sdk/ndk/25.2.9519653/ gomobile init -openal ~/cpp/openal-soft/
你期望看到什么?
我期望命令能够为Android构建OpenAL,以便它可以与 gomobile build
和 gomobile install
一起使用。
你看到了什么?
gomobile: ANDROID_NDK_HOME specifies /home/zergon321/Android/Sdk/ndk/25.2.9519653/, which is unusable: unsupported API version 16 (not in 19..33)
5条答案
按热度按时间e4yzc0pl1#
当我查看https://developer.android.com/ndk/downloads/revision_history时,很明显你正在使用的NDK版本(24)只支持API级别19及以上:
所以你看到的现象看起来是预期的行为。建议你使用适当的标志选择不同的Android API级别,例如https://cs.opensource.google/go/x/mobile/+/master:cmd/gomobile/build.go;l=63;drc=43a0384520996c8376bfb8637390f12b44773e65。
mccptt672#
但是
gomobile init
命令不支持-androidapi
标志。输出结果为:
那么我应该怎么做呢?
wfveoks03#
我明白了。这确实是一个问题。
@hyangah ,你有什么见解吗?也许
minAndroidAPI
需要升级?mkshixfv4#
(CC @golang/android)
i2byvkas5#
可能 https://cs.opensource.google/go/x/mobile/+/master:internal/binres/binres.go;drc=8578da9835fd365e78a6e63048c103b27a53a82c;l=253 是要责备的。
构建成功:
gomobile build -target=android -androidapi 29 golang.org/x/mobile/example/basic
但是安装失败:
gomobile install -target=android -androidapi 29 golang.org/x/mobile/example/basic
,出现错误:使用
apktool d basic.apk
检查已构建的basic.apk
发现在 ndroidManifest.xml 中:platformBuildVersionCode="16"
(没有提到其他 API 版本)。