博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用 go 语言开发 android app
阅读量:5931 次
发布时间:2019-06-19

本文共 2845 字,大约阅读时间需要 9 分钟。

hot3.png

一. 下载官方源码 

git clone https://github.com/golang/mobile.git

二. 将mobile目录移动到 $gopath/golang.org/x中

mkdir -p $gopath/golang.org/x && mv mobile $gopath/golang.org/x/

三. 复制官方例子 basic 到 gopath 中

cp -a $gopath/golang.org/x/mobile/example/basic $gopath/

四. 运行编译命令

cd $gopath/src/basic./make.bash

1. 如果出现错误 

go build runtime: android/arm must be bootstrapped using make.bash

说明你还没有配置 go 的交叉编译环境,就是说你现在的系统无法编译出可以运行在 android/arm cpu 上的二进制文件 *.so

进入你的 ndk 目录并运行 make-standalone-toolchain.sh

cd ~/android-ndk && ./build/tools/make-standalone-toolchain.shCopying prebuilt binaries...Copying sysroot headers and libraries...Copying c++ runtime headers and libraries...Creating package file: /tmp/ndk-oldfeel/arm-linux-androideabi-4.9.tar.bz2Cleaning up...Done.

如果出现

Unable to auto-config arch from toolchain

这是说无法自动配置 toolchain,需要手动配置.先看看你的ndk支持编译哪些cpu

oldfeel@oldfeel:~/android-ndk$ ls toolchains/aarch64-linux-android-4.9        mipsel-linux-android-4.8aarch64-linux-android-clang3.4   mipsel-linux-android-4.9aarch64-linux-android-clang3.5   mipsel-linux-android-clang3.4arm-linux-androideabi-4.6        mipsel-linux-android-clang3.5arm-linux-androideabi-4.8        renderscriptarm-linux-androideabi-4.9        x86-4.6arm-linux-androideabi-clang3.4   x86-4.8arm-linux-androideabi-clang3.5   x86-4.9llvm-3.4                         x86_64-4.9llvm-3.5                         x86_64-clang3.4mips64el-linux-android-4.9       x86_64-clang3.5mips64el-linux-android-clang3.4  x86-clang3.4mips64el-linux-android-clang3.5  x86-clang3.5mipsel-linux-android-4.6

编辑 make-standalone-toolchain.sh,找到并修改 TOOLCHAIN_NAME= 为

vim build/tools/make-standalone-toolchain.sh
TOOLCHAIN_NAME=arm-linux-androideabi-4.9

重新执行

./build/tools/make-standalone-toolchain.sh --platform=android-14Copying prebuilt binaries...Copying sysroot headers and libraries...Copying c++ runtime headers and libraries...Creating package file: /tmp/ndk-oldfeel/arm-linux-androideabi-4.9.tar.bz2Cleaning up...Done.

解压 /tmp/ndk-oldfeel/arm-linux-androideabi-4.9.tar.bz2 (你的可能是别的名字,上面的运行结果里有显示)并将里面的所有文件 arm-linux-androideabi-4.9/* 移动到 ndk 目录中

mv arm-linux-androideabi-4.9/* ~/android-ndk/

这时候就可以到 go/src 下配置 go 的交叉编译环境(比如我的 go 源码是放在 ~/go 中的)

注意:修改第二行命令中的 ~/android-ndk 为自己的 ndk 目录

cd ~/go/srcCC_FOR_TARGET=~/android-ndk/bin/arm-linux-androideabi-gcc GOOS=android GOARCH=arm GOARM=7 CGO_ENABLED=1 ./make.bash

最后出现

---Installed Go for android/arm in /home/oldfeel/goInstalled commands in /home/oldfeel/go/bin

说明配置成功,再次执行 make.bash

cd $gopath/src/basic./make.bash

如果出现

./make.bash: 行 16: ndk-build: 未找到命令

说明没有把 ndk 目录放入环境变量中,另外还需要配置 ANDROID_HOME=sdk.dir

vim ~/.profile

在最下面添加

export ANDROID_HOME=$HOME/android-sdkexport PATH=$PATH:$HOME/android-ndk

刷新环境变量(该刷新只对当前终端有效,若想对所有终端有效请重启电脑)

source ~/.profile

再次执行 make.bash 应该就成功了吧

cd $gopath/src/basic./make.bash

参考Demo:

转载于:https://my.oschina.net/oldfeel/blog/372556

你可能感兴趣的文章
SqlServer2012自增主键跳跃增长的问题解决方案
查看>>
你真的了解UIEvent、UITouch吗?
查看>>
webpack vue2.0项目脚手架生成的webpack文件
查看>>
2014面试总结--java、数据 方向
查看>>
Linux 网卡驱动学习(一)(分析一个虚拟硬件的网络驱动样例)
查看>>
Linux下的SVN服务器搭建
查看>>
我在农业2.0的互联网创业思考 (1)
查看>>
如何在Linux中查看所有正在运行的进程
查看>>
Docker: 限制容器可用的内存
查看>>
Git 的4个阶段的撤销更改
查看>>
Downloading jQuery 3.2.1
查看>>
selenium+python自动化87-Chrome浏览器静默模式启动(headless)
查看>>
在IIS7、IIS7.5中应用程序池最优配置方案
查看>>
mybatis 整合spring之mapperLocations配置的问题
查看>>
Python time 的应用
查看>>
hadoop21---使用代理修改List,代理流程
查看>>
mysql for update语句
查看>>
历史时间轴
查看>>
android自定义View绘制天气温度曲线
查看>>
legend---七、jquery如何选中select的selected的选择上的自定义属性
查看>>