最近打算研究一下CrossApp的Android开发,但是在Windos 7配置时碰到一点问题,记录一下方便以后复习。
1、Android SDK、NDK、Java需要安装好,这一步不详细写了。
2、下载最新版本CrossApp,目前最新的版本是CrossApp-0.3.9,解压之后放到一个磁盘中,我选择的是C盘,那么CrossApp在电脑上路径就是C:\CrossApp-0.3.9,目录如下:
3、运行CrossApp目录下的project-creator.exe
Project Name一栏填入:Simple,Package Name填入:org.CrossApp.game
Project Name可以按照自己的爱好取,Package Name为了方便导入Eclipse后拷贝C:\CrossApp-0.3.9\CrossApp\platform\android\java\src下的代码,所以写成org.CrossApp.game。
4.打开Eclipse将刚刚创建的工程导入进来,这个时候Eclipse的控制台会报错:
Cannot run program "bash": Launching failed。因为默认的情况下会去执行
Android项目下的build_native.sh脚本,这个是shell脚本在window下是不能直接
运行的,需要安装一些在windows下模拟shell坏境的软件才能执行。修改项目的Properties中C/C++Build选项的build commad为D:\android-ndk-r9d\ndk-build.cmd,这个根据NDK的目录来修改即可。
5、导入后Simple.java这个文件有错提示org.CrossApp.lib无法导入,这时候需要将C:\CrossApp-0.3.9\CrossApp\platform\android\java\src\org\CrossApp\lib下的java代码拷贝到Simple项目的src目下,拷贝的需要注意一下,因为建立项目时取得包名是org.CrossApp.game,而需要导入的包是org.CrossApp.lib,所以可以直接将lib目录拷贝到Simple目录的src\org\CrossApp\下和game目录同级即可。拷贝后还会出现一个小错误:AndroidGPS.java这个文件中有中文,需要将文本的编码改一下,一般的改为UTF-8即可。
6、编译的时候报错:Android NDK: jni/Android.mk: Cannot find module with tag 'CrossApp' in import path,这个错误在CrossApp网站上有解决方案。打开jni/Android.mk文件可以看到报错的地方:
$(call import-module,CrossApp)
$(call import-module,CrossApp/platform/third_party/android/prebuilt/libcurl)
$(call import-module,CocosDenshion/android)
$(call import-module,extensions)
import-module在NDK的文档中解释如下:
之所以报错是因为CrossApp是一个相对于NDK_MODULE_PATH的路径,但是NDK_MODULE_PATH却没有定义,所以就找不到CrossApp了。查看CrossApp的目录发现CrossApp的上层目录是C:\CrossApp-0.3.9,所以需要将NDK_MODULE_PATH设置一下,NDK提供了import-add-path函数可以在mk文件中将一个新的路径加到NDK_MODULE_PATH中,在$(call import-module,CrossApp)前面加上
$(call import-add-path,C:/CrossApp-0.3.9),注意不能写成:$(call import-add-path,C:\CrossApp-0.3.9),否则会报错。mk文件中路径分隔符和Linux中一样的是/,而不是\。继续编译又发现报错了:
Cannot find module with tag 'libjpeg' in import path ,因为在CrossApp/Android.mk中有如下调用:
$(call import-module,libjpeg)
$(call import-module,libpng)
$(call import-module,libtiff)
$(call import-module,libwebp)
$(call import-module,libfreetype2)
同理,找到libjpeg的上层目录为:C:\CrossApp0.3.9\CrossApp\platform\third_party\android\prebuilt
所以再加一行:
$(call import-add-path,C:/CrossApp-0.3.9/CrossApp/platform/third_party/android/prebuilt)注意路径分隔符不能写错。
经过以上步骤就可以顺利的编译了。
要想生成的apk可以顺利运行的话,还需要将Resources中的文件拷贝到Android项目的assets文件夹中。
最后上一下运行的截图: