cocos2d-x for android配置 & 运行 Sample on Linux OS
1.从http://www.cocos2d-x.org/download下载稳定版 比如cocos2d-x-2.2
2.解压cocos2d-x-2.2.zip,比如本文将其解压到 /opt 目录下
3.运行 android-buildsetup.sh,运行之前需要先设置3个环境变量,如将以下变量写到文件 /etc/profile中
export ANDROID_SDK_ROOT=/opt/android-sdk-linux
export ANDROID_NDK_ROOT=/opt/android-ndk-r9b
export COCOS2DX_ROOT=/opt/cocos2d-x-2.2
export PATH=$COCOS2DX_ROOT:$ANDROID_NDK_ROOT:$ANDROID_SDK_ROOT:$PATH
然后:
$ cd /opt/cocos2d-x-2.2/tools
$ ./android-buildsetup.sh
2.2.3版本需要采用如下的方式运行:(如果按照上面的运行话,脚本还给出了提示,赞,这个比较人性化)
$ cd ./tools/android-buildsetup.sh
lbq:/opt/cocos2d-x-2.2..$ ./tools/android-buildsetup.sh
即改成需要在根目录下运行
android-buildsetup.sh的主要目的是将android sdk与ndk的目录路径写到各个sample工程的local.properties文件中.
成功运行,如下图所示:
4.接着编译JNI,与普通的Andorid工程不同的是,不是进入android工程中的JNI目录,然后运行ndk-build,如果这样运行,会出现如下的错误:
$ cd /opt/cocos2d-x-2.2/samples/Cpp/HelloCpp/proj.android/jni
$ ndk-build
Android NDK: /opt/cocos2d-x-2.2/samples/Cpp/HelloCpp/proj.android/jni/Android.mk: Cannot find module with tag 'cocos2dx' in import path
Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ?
Android NDK: The following directories were searched:
Android NDK:
/opt/cocos2d-x-2.2/samples/Cpp/HelloCpp/proj.android/jni/Android.mk:: *** Android NDK: Aborting. . Stop.
而应该是:
$ cd /opt/cocos2d-x-2.2/samples/Cpp/HelloCpp/proj.android
$ ./build_native.sh
如果正确的话,就会产生.so文件
5.但是如果您的NDK版本不是最新或者不购新的话(至少是r6以上,不包括r6版本),则会出现如下的错误:
/opt/cocos2d-x-2.2/cocos2dx/platform/android/CCGL.h:: error: 'PFNGLGENVERTEXARRAYSOESPROC' does not name a type
/opt/cocos2d-x-2.2/cocos2dx/platform/android/CCGL.h:: error: 'PFNGLBINDVERTEXARRAYOESPROC' does not name a type
/opt/cocos2d-x-2.2/cocos2dx/platform/android/CCGL.h:: error: 'PFNGLDELETEVERTEXARRAYSOESPROC' does not name a type
网上也能查到很多这样的错误,也都是说NDK版本低的原因。
刚开始我更新了NDK版本并且重新执行了步骤3,但是还会出现以上的错误,
后来发现,是因为build_native.sh这个Shell脚本写的有问题:
# write local.properties if it doesn't already exist
if [ -f "$_LOCAL_PROPERTIES_FILE" ]
then
echo "$_LOCAL_PROPERTIES_FILE exists. skipping overwrite"
else
echo "writing $_LOCAL_PROPERTIES_FILE"
echo -e "$_CONTENTS" > "$_LOCAL_PROPERTIES_FILE"
fi
看到了没,写local.properties当且仅当local.properties文件不存在的时候,所以只要一开始运行过一次android-buildsetup.sh,那么那些android工程下local.properties就不会被更新,所以需要修改下android-buildsetup.sh这个脚本,每次运行都强制写local.properties文件:
# write local.properties wether if is exist
# if [ -f "$_LOCAL_PROPERTIES_FILE" ]
# then
# echo "$_LOCAL_PROPERTIES_FILE exists. skipping overwrite"
# else
echo "writing $_LOCAL_PROPERTIES_FILE"
echo -e "$_CONTENTS" > "$_LOCAL_PROPERTIES_FILE"
# fi
这样,就彻底搞定了。
6./opt/cocos2d-x-2.2/cocos2dx/platform/android这个是cocos2dx引擎的代码,很多sample工程都要引用这个lib
7.HelloCpp的“梦书”(原来是"Hello World"修改了下)二字来自 /opt/cocos2d-x-2.2/samples/Cpp/HelloCpp/Classes 下的HelloWorldScene.cpp文件
CCLabelTTF* pLabel = CCLabelTTF::create("梦书", "Arial", TITLE_FONT_SIZE);
代码很像Object C不是。--- 不过目前每次clean都会连cocos2d-x的引擎代码C++部分一起重新编译,很慢哦
参考:
1. https://github.com/cocos2d/cocos2d-x
2.How to setup Cocos2d-x (Windows and Android)
cocos2d-x for android配置 & 运行 Sample on Linux OS的更多相关文章
- 【Mac + Android】之Android Studio 环境搭建,AVD模拟器运行(包括:命令行运行AVD,并且Genymotion模拟器插件配置运行)
目录: 前提.Mac环境下手动配置Android SDK 一. Android Studio下载及配置 二.AVD模拟器配置运行 扩展:命令行运行AVD模拟器 三.在Android Studio 中配 ...
- Cocos2d-x的Android配置以及相关参考文档
关于Win7下配置Coco2d-x的Android开发环境,可以参考子龙山人的博客:Setting Up Cocos2d-x Android Development on Win7,这篇文章写得很详细 ...
- Xamarin Android项目运行失败
Xamarin Android项目运行失败 错误信息:Build Failed: MonoDroid does not support running the previous version. P ...
- Android应用运行过程(转)
源:Android应用运行过程 首先,ActivityThread从main()函数开始执行,调用prepareMainLooper()为UI线程创建一个消息队列(MessageQueue). 然后创 ...
- 【转】实践最有效的提高Android Studio运行、编译速度方案
原文:https://blog.csdn.net/xwh_1230/article/details/60961723 实践最有效的提高Android Studio运行.编译速度方案 最有效提升Andr ...
- centos8安装fastdfs6.06集群方式三之:storage的安装/配置/运行
一,查看本地centos的版本 [root@localhost lib]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) 说 ...
- centos8安装fastdfs6.06集群方式二之:tracker的安装/配置/运行
一,查看本地centos的版本 [root@localhost lib]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) 说 ...
- 编译可在Android上运行的qemu user mode
前言 本文在Ubuntu 64位系统上对qemu项目进行交叉编译,并且只编译与qemu user mode有关的代码. 下文中的”NDK”若无特殊说明均指”Android NDK”. 下文中”$NDK ...
- 系列篇|编译可在Android上运行的依赖库(一):glib库
前言 这是系列文章,它们由<编译可在Android上运行的glib库>及其他4篇文章组成,这4篇文章在“编译依赖库”一节中列出.由于glib库依赖于其他第三方库,所以需要先将依赖的第三方库 ...
随机推荐
- 远程桌面时plsql的复制粘贴功能失效
解决办法:重新启动远程桌面上的rdpclip进程就可以复制粘贴了,但是每次重开远程桌面都会出现同样的问题.可以rdpclip这个设置成开机启动.
- SSH(Struts2+Spring4+HIbernate5)的简化
今天给大家带来的是一个简单的新闻发布系统 首先在学习过程中我是深有体会,做事情不要浮躁,不要想着一口吃下一个胖子, 最最重要的是理解,理解透了学什么东西都是随心所欲的. 开发环境:win10系统 jd ...
- favicon.ico 404的问题(title栏前面的图标)
1.页面中自定义图标 去 http://www.bitbug.net/ 定制图片,有32*32,16*16等样式可供选择 2.在页面中引入定义的图片 <link rel="sho ...
- struts2-上传文件
package web; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; i ...
- PHP的final关键字、static关键字、const关键字
在PHP5中新增加了final关键字,它可以加载类或类中方法前.但不能使用final标识成员属性,虽然final有常量的意思,但在php中定义常量是使用define()函数来完成的. final关键字 ...
- 12月15日smarty模板基本语法
smarty基本语法: 1.注释:<{* this is a comment *}>,注意左右分隔符的写法,要和自己定义的一致. <{* I am a Smarty comment, ...
- 使用vlc播放器做rtsp流媒体服务器
可参考: 使用vlc播放器播放rtsp视频 web网页中使用vlc插件播放相机rtsp流视频 使用vlc进行二次开发做自己的播放器 首先需要安装vlc播放器,下载及安装步骤略 使用vlc播放器做rts ...
- Python之路【第二十四篇】Python算法排序一
什么是算法 1.什么是算法 算法(algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出.简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果. ...
- iOS 判断网络连接状态的几种方法
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "PingFang SC"; color: #801b80 } p.p2 ...
- 2016百度之星 资格赛ABCDE
看题:http://bestcoder.hdu.edu.cn/contests/contest_show.php?cid=690 交题:http://acm.hdu.edu.cn/search.php ...