通過參考網路上的資料,將自己在Ubuntu上面搭建android NDK R7開發環境的過程,經驗,以及遇到的問題給記錄下來。希望對大家有所協助。
1. 下載包android-ndk-r7-linux-x86.tar.bz2(然後可以拷貝至你想存放的路徑,比如我的路徑為:/home/XXX/Android_install)
2. 進入包存放目錄(cd /home/XXX/Android_install)進行解壓縮,
命令:tar jxvf android-ndk-r7-linux-x86.tar.bz2;解壓後名字為android-ndk-r7。
3. 我習慣更改許可權,
命令:chmod 777 -R android-ndk-r7
4. 為ndk-build設定環境變數(為了使用方便),修改你的.bashrc 檔案
1)開啟~/.bashrc檔案進行編輯
命令:gedit ~/.bashrc
2)~/.bashrc檔案最後添加以下兩行文字
export NDK_HOME=/home/XXX/Android_install/android-ndk-r7/
export PATH=$PATH:$NDK_HOME
3) 儲存~/.bashrc檔案並退出。
5. 讓設定立馬生效
命令:source ~/.bashrc
6. 測試組態是否OK
命令:ndk-build
執行後列印出資訊:
/home/XXX/Android_install/android-ndk-r7/prebuilt/linux-x86/bin/awk: 1: ELF: not found
/home/XXX/Android_install/android-ndk-r7/prebuilt/linux-x86/bin/awk: 4: Syntax error: word unexpected (expecting ")")
Android NDK: Host 'awk' tool is outdated. Please define HOST_AWK to point to Gawk or Nawk !
/home/XXX/Android_install/android-ndk-r7/build/core/init.mk:258: *** Android NDK: Aborting. 。 停止。
只要不提示ndk-build command not found,就說明配置成功。
7. 測試DEMO程式。
命令:ndk-build -C /home/XXX/Android_install/android-ndk-r7/samples/hello-jni/(也可以直接到該目錄下,直接執行ndk-build)
問題來了,提示錯誤:
/home/XXX/Android_install/android-ndk-r7/prebuilt/linux-x86/bin/awk: 1: ELF: not found
/home/XXX/Android_install/android-ndk-r7/prebuilt/linux-x86/bin/awk: 4: Syntax error: word unexpected (expecting ")")
Android NDK: Host 'awk' tool is outdated. Please define HOST_AWK to point to Gawk or Nawk !
/home/XXX/Android_install/android-ndk-r7/build/core/init.mk:258: *** Android NDK: Aborting. 。 停止
在網上搜尋了一下,原來是系統是32位的,無法運行64位的程式。於是在網上找了一個解決方案:刪除prebuilt下的檔案,或者直接刪除awk或者對awk重新命名。總之,就是不使用這個awk檔案。刪除或重新命名後,NDK就會使用Linux系統內建的awk程式,就沒有問題了。
1)cd /home/XXX/Android_install/android-ndk-r7/prebuilt/linux-x86/bin
2) root@XXX:/home/XXX/Android_install/android-ndk-r7/prebuilt/linux-x86/bin# ls
awk make sed
3) root@XXX:/home/XXX/Android_install/android-ndk-r7/prebuilt/linux-x86/bin# mv awk awk_back
4) root@XXX:/home/XXX/Android_install/android-ndk-r7/prebuilt/linux-x86/bin# cd ../../../
5) 執行命令:root@XXX:/home/XXX/Android_install/android-ndk-r7# ndk-build -C samples/hello-jni/
列印資訊:
Gdbserver : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserver
Gdbsetup : libs/armeabi/gdb.setup
Compile thumb : hello-jni <= hello-jni.c
SharedLibrary : libhello-jni.so
Install : libhello-jni.so => libs/armeabi/libhello-jni.so