If the volume is not accessible or -v option is not given, docker run golang/mobile will fail with an error like: finalize namespace chdir to /src/golang.org/x/mobile no such file or directory2015/01/13 20:14:19 Error response from daemon: Cannot start container dfe1dbc2bac3ea939e154eee13d20ecae4c473a595dbc1e6a0e5cf0be3963909: finalize namespace chdir to /src/golang.org/x/mobile no such file or directory Change-Id: I4d56c044e9c7682e63da7170a546522230237b18 Reviewed-on: https://go-review.googlesource.com/2780 Reviewed-by: Burcu Dogan <jbd@google.com>
Go support for Mobile devices
The Go mobile repository holds packages and build tools for using Go on Android.
This is early work and the build system is a bumpy ride. Building a binary for Android requires using a Go cross compiler and an external linker from the NDK.
For now, the easiest way to setup a build environment is using the provided Dockerfile:
docker pull golang/mobile
Get the sample applications.
go get -d golang.org/x/mobile/example/...
In your app directory under your $GOPATH
, copy the following files from either
the golang.org/x/mobile/example/basic
or golang.org/x/mobile/example/libhello
apps:
AndroidManifest.xml
all.bash
build.xml
jni/Android.mk
make.bash
Start with basic
if you are writing an all-Go application (that is, an OpenGL game)
or libhello if you are building a .so
file for use from Java via
gobind. Edit the files to change
the name of your app.
To build, run:
docker run -v $GOPATH/src:/src mobile /bin/bash -c 'cd /src/your/project && ./make.bash'
Note the use of -v option to mount $GOPATH/src to /src of the container. The above command will fail if the -v option is missing or the specified volume is not accessible from the container.
When working with an all-Go application, this will produce a binary at
$GOPATH/src/your/project/bin/name-debug.apk
. You can use the adb tool to install
and run this app. See all.bash for an example.
--
APIs are currently very limited, but under active development. Package documentation serves as a starting point:
Contributions to Go are appreciated. See https://golang.org/doc/contribute.html.