用 go 語言開發 android app

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

一. 下載官方源碼 https://github.com/golang/mobile

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


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.