在Ubuntu上面搭建android NDK R7开发环境的过程,经验,以及遇到的问题给记录下来。希望对大家有所帮助。
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