Cocos2D-X官网已经简单介绍了如何在OS X环境下搭建Cocos2D-X v2.x和v3.x的指南。具体链接为:http://www.cocos.com/doc/article/index?type=cocos2d-x&url=/doc/cocos-docs-master/manual/framework/native/v3/getting-started/setting-up-development-environments-on-mac-with-eclipse/zh.md

在此,我将进一步介绍如何将生产的项目用于Android Studio。

我们通过上述链接中所描述的过程生成完一个HelloWorld项目工程后可以先放在桌面或其它临时文件夹里。然后,打开Android Studio应用,选择“Import Non-Android Studio Project”,然后选择HelloWorldDemo/proj.android所在目录。然后点击几次Next之后即可进入正式项目工程界面。一般来说,刚进入界面会出现missing SDK的错误。由于Cocos2D-X默认生成的SDK API版本太小,因此分别进入helloWorldDemo目录以及libcocos2dx目录下的build.gradle文件中,将compileSdkVersion、targetSdkVersion设置到较高版本即可。总之,只要当前的Android Studio能认出来就行。

其次,我们把src/main目录下的jni目录给delete掉。可以直接在左侧项目栏,右键jni,然后选择Delete删除之。由于这会使得Android Studio自动去编译JNI,然而我们已经通过执行build_native.py把整个JNI都编译好了,因此这一步可以放在外面做。

最后,我们点击绿色三角箭头即可运行这个HelloWorldDemo的应用了。

下面谈谈如何引入其它第三方库的问题。首先是JNI的库。我们知道,Cocos2D-X使用是C++作为主要开发语言,因此势必哋跟JNI来打交道。如果我们获得的第三方库也是JNI的.so动态库文件,那么我们可以在之前所生成的放在桌面或临时文件夹中的项目工程文件中,把第三方.so文件先放在“proj.android/jni”目录中。然后编辑Android.mk,在

LOCAL_STATIC_LIBRARIES := cocos2dx_static

这条语句下添加

LOCAL_LDLIBS += -L$(LOCAL_PATH)/ -lthird_party

假定,我们这里所使用的第三方动态库文件名为libthird_party.so。通过编译后,我们还需要将这些.so文件一起放到Android Studio项目工程下的HelloWorldDemo里的jniLib中。

然后,我们要添加其它C/C++源文件可以直接在LOCAL_SRC_FILES变量后通过+=操作符进行追加。

这里值得注意的是,Cocos2D-X默认仅编译armeabi,如果有需要,可以编辑Application.mk,修改APP_ABI变量,往后追加想要支持的ABI。现在Cocos2D-X v3.4的SDK,ARMv8还不支持。

对于导入第三方jar库的话也比较简单。我们首先可以把第三方jar库扔进Android Studio工程目录中的HelloWorldDemo目录下的jniLib目录中,然后打开Android Studio工程,在左侧项目栏里会把我们加入的jar文件显示出来,我们右键它(如果有多个可以多选),然后选择Add to Libs,将它们作为库正式导入到工程中。这样就OK了~

最后,如果要在工程中使用android.support库,或者第三方库中有对android.support库的引用,那么得在左侧工程栏里helloWorldDemo里的build.gradle的dependencies中添加如下语句:

dependencies {
compile project(':libcocos2dx') // 这个是已有的 /** 添加对com.android.support的支持 */
compile 'com.android.support:appcompat-v7:21.0.3'
}

对于其它资源文件可以合并到res目录下;对于要增加特殊的用户访问权限的,直接编辑AndroidManifest.xml即可。

OS X环境下如何搭建编译Cocos2D-X v3.x的Android Studio工程的更多相关文章

  1. 在 Mac OS X 环境中从源代码编译安装 FFmpeg

    最近因为一个项目要求,需要开发实时视频编解码功能,准备采用 FFmpeg 以 x264 方式进行实时的视频编解码.Windows 以及 Linux 环境下的 FFmpeg 动态库.头文件等资源都非常容 ...

  2. iOS系统提供开发环境下命令行编译工具:xcodebuild

    iOS系统提供开发环境下命令行编译工具:xcodebuild[3] xcodebuild 在介绍xcodebuild之前,需要先弄清楚一些在XCode环境下的一些概念[4]: Workspace:简单 ...

  3. MemCache在Windows环境下的搭建及启动

    MemCache在Windows环境下的搭建及启动 一.memcache服务器端的安装 1.下载memcached的安装包,memcached_en32or64.zip,下载链接:http://pan ...

  4. CentOS7.4,anaconda3,python3.6,tensorflow环境下gdal的编译和问题解决

    CentOS7.4,anaconda3,python3.6,tensorflow环境下gdal的编译和问题解决 这是gdal可能会用到的额外的包,按自己需要先提前编译. 这里的话我主要用了proj,L ...

  5. RabbitMQ,Windows环境下安装搭建

    切入正题:RabbitMQ的Windows环境下安装搭建 一.首先安装otp_win64_20.1.exe,,, 二.然后安装,rabbitmq-server-3.6.12.exe, 安装完成后,在服 ...

  6. Linux环境下使用VSCode编译makefile文件的注意事项

    Linux环境下使用VSCode编译makefile文件的注意事项 首先安装C/C++的两个依赖 在debug,launch会自动的生成下方的launch.json launch.json { // ...

  7. aarch64环境下,搭建并配置服务器tomcat:

    aarch64环境下,搭建并配置服务器tomcat: 环境说明及下载相关文件: 1. ARM环境:aarch64开发板 2.JDK安装包: jdk-8u231-linux-arm64-vfp-hflt ...

  8. Windows环境下使用VS2005编译OpenSSL

    如何Windows环境下,使用VS2005编译OpenSSL,虽然这个问题在Baidu.Google上一堆,但安装中还是遇到些问题,在这里 记录下来希望能帮助大家不要在走弯路.注:我是在WinXP S ...

  9. XAMPP、PHPstorm和PHPcharm和Windows环境下Python搭建+暴力破解

    XAMPP的安装和使用 一.什么是XAMPP? XAMPP是最流行的PHP开发环境. XAMPP是完全免费且易于安装的Apache发行版,其中包含Apache.MariaDB.PHP和Perl. 类似 ...

随机推荐

  1. 【转】protocol buffer开发指南

    这个作者的其它golang的文章也值得一读 原文:https://www.cnblogs.com/charlieroro/p/9011900.html protocol buffer开发指南 ---- ...

  2. postgresql —— 查看索引

    查索引 语句: SELECT tablename, indexname, indexdef FROM pg_indexes WHERE tablename = 'user_tbl' ORDER BY ...

  3. 并发编程大师系列之:线程的定义和中断 interrupt

    1.启动线程的三种方式: 1.1继承Thread类 public static class UseThread extends Thread { public void run() { System. ...

  4. 数据库概念 MySQL语法

    数据库概念 将保存的数据部分,存到一个公共的地方,所有的用户涉及到数据相关都必须来这个公共地方查找 MySQL 本质就是一款基于网络通信的应用软件,任何基于网络通信的软件底层都是socket 可以把M ...

  5. Wireshark远程抓包

    1.被监控主机上,在安装目录下点击rpcapd.exe,运行server服务,并关闭防火墙 2.监控机器上,Capture Options,点击Manage Interfaces,弹出如下对话框 选择 ...

  6. AtCoder Beginner Contest 143 F - Distinct Numbers

    题意 给出一个长度为NNN的序列,求对于所有k∈[1,N]k\in[1,N]k∈[1,N],每次从序列中选出kkk个互不相同的数,最多能取多少次. N≤3e5N\le3e5N≤3e5 题解 我们首先把 ...

  7. Swagger2 模拟请求头

    前几天开发项目的时候,使用了Restful风格的接口.进行开发的时候,模拟请求头,带Token的时候遇到了一些问题.因为Api接口使用Swagger2进行搭建,所以找到了Swagger2 模拟head ...

  8. vim基本配置

    #set nocompatible # 打开语法高亮 syntax on # 在底部显示当前模式 set showmode # 命令模式下显示键入的指令 set showcmd # 支持使用鼠标 se ...

  9. IDEA2018创建SpringBoot无法连接https://start.spring.io

    这是由于spring-boot需要访问https://start.spring.io外网,但是由于国内的局域网限制导致的. 解决办法: 进入到IDEA的setting 搜索 HTTP Proxy 选择 ...

  10. loj #2319

    noip2017列队 - resolve 标签:题解 \(n * m\) 的矩阵,每个元素 \((i, j)\) 的标号为 \((i - 1) * m + j\), 每次给出 \((x, y)\), ...