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.3.$ ./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:19: *** 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:47: error: 'PFNGLGENVERTEXARRAYSOESPROC' does not name a type
/opt/cocos2d-x-2.2/cocos2dx/platform/android/CCGL.h:48: error: 'PFNGLBINDVERTEXARRAYOESPROC' does not name a type
/opt/cocos2d-x-2.2/cocos2dx/platform/android/CCGL.h:49: error: 'PFNGLDELETEVERTEXARRAYSOESPROC' does not name a type

网上也能查到很多这样的错误,也都是说NDK版本低的原因。

刚开始我更新了NDK版本并且重新执行了步骤3,但是还会出现以上的错误,

后来发现,是因为build_native.sh这个Shell脚本写的有问题:

# write local.properties if it doesn't already existif [ -f "$_LOCAL_PROPERTIES_FILE" ]thenecho "$_LOCAL_PROPERTIES_FILE exists. skipping overwrite"elseecho "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"
#    elseecho "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)

转载于:https://www.cnblogs.com/mengshu-lbq/p/3435434.html

cocos2d-x for android配置 运行 Sample on Linux OS相关推荐

  1. Android 在运行时请求权限

    2019独角兽企业重金招聘Python工程师标准>>> 从 Android 6.0(API 级别 23)开始,用户开始在应用运行时向其授予权限,而不是在应用安装时授予.此方法可以简化 ...

  2. Xamarin Android项目运行失败

    Xamarin Android项目运行失败 错误信息:Build Failed: MonoDroid does not support running the previous version.  P ...

  3. android 置灰不可点击,Android Studio 运行按钮灰色的完美解决方法

    Android Studio 运行按钮灰色的完美解决方法 今天新建项目的时候突然发现编译后运行按钮为灰色. 解决方案:第一步:点击图中的Add Configuration,出来如下界面 第二步:点+号 ...

  4. 【Android 逆向】Android 逆向通用工具开发 ( Android 平台运行的 cmd 程序类型 | Android 平台运行的 cmd 程序编译选项 | 编译 cmd 可执行程序 )

    文章目录 一.Android 平台运行的 cmd 程序类型 二.Android 平台运行的 cmd 程序编译选项 三.编译 Android 平台的 cmd 可执行程序 一.Android 平台运行的 ...

  5. android 配置ADB环境

    今天,简单讲讲如何配置Android的adb命令环境. 之前,自己要使用Dos窗口的ADB命令,发现无法识别.很明显是ADB环境没有配置好.我这里Android studio的huan环境已经配置好了 ...

  6. Android应用基础知识(4)---Android处理运行时变更

    Android处理运行时变更 有些设备配置可能会在运行时发生变化(例如屏幕方向.键盘可用性及语言). 发生这种变化时,Android 会重启正在运行的 Activity(先后调用 onDestroy( ...

  7. android o 编译及运行,【转】实践最有效的提高Android Studio运行、编译速度方案

    原文:https://blog.csdn.net/xwh_1230/article/details/60961723 实践最有效的提高Android Studio运行.编译速度方案 最有效提升Andr ...

  8. ionic build android release,ionic build android -release运行报错

    ionic build android -release运行报错,Could not reserve enough space for 2097152KB object heap,检查了应该有足够的空 ...

  9. 有没有办法在Android上运行Python?

    我们正在开发S60版本,该平台具有不错的Python API. 但是,关于Android上的Python尚无任何官方资料,但是由于Jython存在,有没有办法让蛇和机器人一起工作? #1楼 目前还没有 ...

最新文章

  1. 预测过去?DeepMind用AI复原古希腊铭文,登Nature封面
  2. springmvc使用freemarker
  3. when is Component-preload.js loaded by UI Framework
  4. 前端面试系列-JS 异步编程
  5. 做免费的EDM,EmailCar看中的是挖掘数据的价值
  6. (软件工程复习核心重点)第六章实现和测试-第二节:软件测试基础
  7. LeetCode 696. Count Binary Substrings
  8. 最好的移动安全计划:先检查风险 再对症下药
  9. python中的jieba分词使用手册_Python jieba结巴分词原理及用法解析
  10. 会说话的PPT,从开发者角度十分钟理解区块链
  11. 【环境安装】Ubuntu20.04 安装yasm-1.3.0
  12. ssm酒店预订系统ssm酒店管理系统民宿预订ssm酒店客房预订系统SSM客房预订系统
  13. cadence——基本操作6
  14. Android重启App
  15. 安装PS 无法选择路径
  16. 转载SQL Server 数据库的性能优化
  17. ::ZheTian / 遮天 强大的Anti-Virus对抗工具
  18. linux运维实验,自制Linux系统实验
  19. 【PSO三维路径规划】基于matlab粒子群算法无人机山地三维路径规划【含Matlab源码 1831期】
  20. dnf进游戏找不到服务器,登录DNF显示连接不到服务器怎么办 服务器连接失败解决方法...

热门文章

  1. java方法参数类型不确定_一个Java方法能有多少个参数类型?这个好奇coder做了个实验...
  2. 0xFFFFFF的问题
  3. 计算机应用基础模拟三答案,《计算机应用基础》模拟试卷三答案
  4. java 工程新建ivy文件_Hadoop学习之路(八)在eclispe上搭建Hadoop开发环境
  5. linux设置基础软件仓库时,安装centos系统时设置基础软件仓库出错
  6. mysql level用法_MYSQL使用方法
  7. python错误bug调试问题汇总
  8. SFP光模块是什么? SFP光模块的类型及应用介绍!
  9. rs485中继器产品功能特点及应用领域介绍
  10. 【渝粤教育】21秋期末考试服务标准化10011k1