这两天在找有关游戏的工作,无奈没有公司招我这样一个新手,只能在家写写码了,以前只在Linux下写过cocos2d的的代码,不过使用python脚本生成的代码直接导入Android的项目无任何问题,因为本人对Linux也比较熟悉。这几天准备弄到windows下结果就悲剧了,导入Eclipse各种悲剧,不过结果总是好的,终于被我折腾好了,在这里也总结一下吧:在这里我们直接创建一下新的项目,直接编译看看它会报什么错:
please define NDK_ROOT CYGWIN environment variable option "nodosfilewarning" turns off this warning. Consult the user's guide for more details about POSIX paths: http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
看明白了吧,在这里我们要定义NDK_ROOT这个路径,当然前提是你安装了NDK,在这里我们就默认你安装了吧,我们找到这个项目下的build_native.sh文件,在这个文件里加上这个环境变量,需要注意的是在windows下的路径表示和Linux下的有点不太一样,需要注意一下,以我的环境为例:
我直接在windows下拿来的路径是这样的:
E:android-sdkandroid-ndk-r9b-windows-x86_64android-ndk-r9b
如果你这样写了,编译时会提示你找不到这个文件,你要改成这个样子才可以:
NDK_ROOT=E:/android-sdk/android-ndk-r9b-windows-x86_64/android-ndk-r9b
加入这一行的位置大概在这些语句的上面:
if [ -z "${NDK_ROOT+aaa}" ];then echo "please define NDK_ROOT" exit 1 fi
加上一行就编译过了? 才不是呢,如果是这么简单也不用这么久了,在Android项目下有个README.md文件,打开这个文件看看吧,主要看一下几行就行:
2. Only for Windows 1. Install [Cygwin](http://www.cygwin.com/) with make (select make package from the list during the install). 2. Add `Cygwinin` directory to system PATH variable. 3. Add this line `none /cygdrive cygdrive binary,noacl,posix=0,user 0 0` to `Cygwinetcfstab` file.
其中step 1,step2 好理解,加入第三个是为什么呢,第三个主要用来配置文件的权限问题,如果比修改这一行编译打包时会遇到权限问题,这个文件要修改cygwin的fstab文件,将该文件修改如下:
#none /cygdrive cygdrive binary,posix=0,user 0 0 none /cygdrive cygdrive binary,noacl,posix=0,user 0 0
注释掉默认的,加入下面的一行,在次编译就不会有任何问题了。
至此问题全部解决。