tabbycute 发表于 2022-11-18 14:43

go使用mobile编译安卓aar

本帖最后由 tabbycute 于 2022-11-18 14:46 编辑

第一次自动安装
go get golang.org/x/mobile/cmd/gomobile

gomobile init

git clone https://github.com/golang/mobile, copy项目到$GOPATH/src/golang.org/x/ 如果没有文件路径,自行创建
go build golang.org/x/mobile/cmd/gomobile,此时会在GOPATH/bin下面生成gomobile;
执行gomobile init, 会在GOPATH/bin下面生成gobind;
gomobile init执行不会报错,如果有问题,执行bind时会报错;
执行gomobile version
报错 gomobile version unknown: binary is out of date, re-install it
尝试过其他很多方法安装都是得到这个结果
求大佬指点一下。如何能解决这个问题
咖啡感谢

依然小圣 发表于 2022-11-18 17:57

省略安装go的步骤

设置GOPROXY https://goproxy.cn 否则 go install 安装失败

安装gomobile

go install golang.org/x/mobile/cmd/gomobile@latest
gomobile init
go mod init demo_android_go_mobile
go get golang.org/x/mobile/bind

创建文件夹hello
把 https://github.com/golang/mobile/blob/master/example/bind/hello/hello.go 放入文件夹内


gomobile bind -v-o mobile.aar -target=android ./hello

jing19233 发表于 2022-11-18 18:27

本帖最后由 jing19233 于 2022-11-18 18:29 编辑

https://github.com/jing332/tts-s ... ster/tts-server-lib
我的这个项目也用了gomobile,可当参考。

go install golang.org/x/mobile/cmd/gomobile@latest
gomobile init
go get golang.org/x/mobile/bind

另外,还需设置ANDROID_NDK_HOME变量(如果在Android Studio里安装了NDK就直接设置ANDROID_HOME为SDK目录即可)
然后构建:
gomobile bind -v -target="android/arm,android/arm64" -androidapi=19

最后将 tts_server_lib.aar 移动到 app/libs 目录下

tabbycute 发表于 2022-11-20 23:58

jing19233 发表于 2022-11-18 18:27
https://github.com/jing332/tts-s ... ster/tts-server-lib
我的这个项目也用了gomobile,可当参考。



我拉了你的项目编译还是没编译不出来,我自己的项目也是这个问题,不知道你有没有遇到过,很奇怪。。。

PS D:\projects_go\tts-server-android\tts-server-lib> go install golang.org/x/mobile/cmd/gomobile@latest
PS D:\projects_go\tts-server-android\tts-server-lib> go get golang.org/x/mobile/bind
PS D:\projects_go\tts-server-android\tts-server-lib> gomobile bind -v -target="android/arm,android/arm64" -androidapi=19
unable to import bind: no Go package in golang.org/x/mobile/bind
unable to import bind: no Go package in golang.org/x/mobile/bind
"golang.org/x/mobile/bind" is not found; run go get golang.org/x/mobile/bind: no Go package in golang.org/x/mobile/bind
E:\go1.19-GOPATH\bin\gomobile.exe: E:\go1.19-GOPATH\bin\gobind.exe -lang=go,java -outdir=C:\Users\ADMINI~1\AppData\Local\Temp\gomobile-work-3915506142 tts-server-lib
failed: exit status 1

PS D:\projects_go\tts-server-android\tts-server-lib>

tabbycute 发表于 2022-11-20 23:59

本帖最后由 tabbycute 于 2022-11-21 00:05 编辑

PS D:\projects_go\tts-server-android\tts-server-lib> go install golang.org/x/mobile/cmd/gomobile@latestPS D:\projects_go\tts-server-android\tts-server-lib> go get golang.org/x/mobile/bind
PS D:\projects_go\tts-server-android\tts-server-lib> gomobile bind -v -target="android/arm,android/arm64" -androidapi=19
unable to import bind: no Go package in golang.org/x/mobile/bind
unable to import bind: no Go package in golang.org/x/mobile/bind
"golang.org/x/mobile/bind" is not found; run go get golang.org/x/mobile/bind: no Go package in golang.org/x/mobile/bind
E:\go1.19-GOPATH\bin\gomobile.exe: E:\go1.19-GOPATH\bin\gobind.exe -lang=go,java -outdir=C:\Users\ADMINI~1\AppData\Local\Temp\gomobile-work-3915506142 tts-server-lib
failed: exit status 1

PS D:\projects_go\tts-server-android\tts-server-lib>

tabbycute 发表于 2022-11-21 00:00

本帖最后由 tabbycute 于 2022-11-21 00:08 编辑

有没有大佬知道上面的报错啊

jing19233 发表于 2022-11-22 19:04

tabbycute 发表于 2022-11-21 00:00
有没有大佬知道上面的报错啊

应当是你自己Go环境的问题,我在Github Actions和本地电脑都正常。

tabbycute 发表于 2022-11-23 11:05

jing19233 发表于 2022-11-22 19:04
应当是你自己Go环境的问题,我在Github Actions和本地电脑都正常。

找到问题了,我之前没有吧项目放到GOPATH下面的src里面,放进去就可以了。{:1_908:}

jing19233 发表于 2022-11-24 13:53

tabbycute 发表于 2022-11-23 11:05
找到问题了,我之前没有吧项目放到GOPATH下面的src里面,放进去就可以了。

你这是没打开gomod,把GO111MODULE=on就好了。

tabbycute 发表于 2022-11-24 15:25

jing19233 发表于 2022-11-24 13:53
你这是没打开gomod,把GO111MODULE=on就好了。

开了的,已经用很久了。只是公司电脑,项目放的到处都是。。。不管怎样,万分感谢帮助
页: [1] 2
查看完整版本: go使用mobile编译安卓aar