OS X环境下如何搭建编译Cocos2D-X v3.x的Android Studio工程
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工程的更多相关文章
- 在 Mac OS X 环境中从源代码编译安装 FFmpeg
最近因为一个项目要求,需要开发实时视频编解码功能,准备采用 FFmpeg 以 x264 方式进行实时的视频编解码.Windows 以及 Linux 环境下的 FFmpeg 动态库.头文件等资源都非常容 ...
- iOS系统提供开发环境下命令行编译工具:xcodebuild
iOS系统提供开发环境下命令行编译工具:xcodebuild[3] xcodebuild 在介绍xcodebuild之前,需要先弄清楚一些在XCode环境下的一些概念[4]: Workspace:简单 ...
- MemCache在Windows环境下的搭建及启动
MemCache在Windows环境下的搭建及启动 一.memcache服务器端的安装 1.下载memcached的安装包,memcached_en32or64.zip,下载链接:http://pan ...
- CentOS7.4,anaconda3,python3.6,tensorflow环境下gdal的编译和问题解决
CentOS7.4,anaconda3,python3.6,tensorflow环境下gdal的编译和问题解决 这是gdal可能会用到的额外的包,按自己需要先提前编译. 这里的话我主要用了proj,L ...
- RabbitMQ,Windows环境下安装搭建
切入正题:RabbitMQ的Windows环境下安装搭建 一.首先安装otp_win64_20.1.exe,,, 二.然后安装,rabbitmq-server-3.6.12.exe, 安装完成后,在服 ...
- Linux环境下使用VSCode编译makefile文件的注意事项
Linux环境下使用VSCode编译makefile文件的注意事项 首先安装C/C++的两个依赖 在debug,launch会自动的生成下方的launch.json launch.json { // ...
- aarch64环境下,搭建并配置服务器tomcat:
aarch64环境下,搭建并配置服务器tomcat: 环境说明及下载相关文件: 1. ARM环境:aarch64开发板 2.JDK安装包: jdk-8u231-linux-arm64-vfp-hflt ...
- Windows环境下使用VS2005编译OpenSSL
如何Windows环境下,使用VS2005编译OpenSSL,虽然这个问题在Baidu.Google上一堆,但安装中还是遇到些问题,在这里 记录下来希望能帮助大家不要在走弯路.注:我是在WinXP S ...
- XAMPP、PHPstorm和PHPcharm和Windows环境下Python搭建+暴力破解
XAMPP的安装和使用 一.什么是XAMPP? XAMPP是最流行的PHP开发环境. XAMPP是完全免费且易于安装的Apache发行版,其中包含Apache.MariaDB.PHP和Perl. 类似 ...
随机推荐
- diff算法实现
大致流程 var vnode = { tag: 'ul', attrs: { id: 'list' }, children: [{ tag: 'li', attrs: { className: 'it ...
- BZOJ3514 GERALD07加强版
GERALD07 Description N个点M条边的无向图,询问保留图中编号在[l,r]的边的时候图中的联通块个数. Input 第一行四个整数N.M.K.type,代表点数.边数.询问数以及询问 ...
- java中的volatile变量
同步与线程间通信: 通信 通信是指消息在两条线程之间传递. 既然要传递消息,那接收线程 和 发送线程之间必须要有个先后关系,此时就需要用到同步.通信和同步是相辅相成的. 同步 同步是指,控制多条线程之 ...
- 并发编程大师系列之:wait/notify/notifyAll/condition
1. wait().notify()和notifyAll()方法是本地方法,并且为final方法,无法被重写. 2. 调用某个对象的wait()方法能让当前线程阻塞,并且当前线程必须拥有此对象的mon ...
- [NOI2008]假面舞会 (搜索+gcd)
题意 LuoguP1477 题解 对于每一条边(u,v)(u,v)(u,v),建两条边(u→v,1),(v→u,−1)(u\to v,1),(v\to u,-1)(u→v,1),(v→u,−1).跑b ...
- ElementUI 之 DatePicker 日期限制范围 disabledDate
需求: 时间选择器,只能选择 2000 年 - 至今的年份. <el-date-picker v-model="year" type="year" :pi ...
- 使用druid连接池的超时回收机制排查连接泄露
起因:系统连接池满了 Exception wait millis 60012, active 2000, maxActive 2000, creating 0 加配置排查: <!-- 超过时间限 ...
- 14 | count(*)这么慢,我该怎么办?
在开发系统的时候,你可能经常需要计算一个表的行数,比如一个交易系统的所有变更记录总数.这时候你可能会想,一条select count(*) from t 语句不就解决了吗? 但是,你会发现随着系统中记 ...
- BCB6常用快捷键
:: 项目管理类 :: F10 代码窗口全屏显示时切换到BCB的主窗口 Ctrl + F12 打开源文件清单对话框 ...
- Linux下基于Xampp的TestLink的安装部署
由于项目需要,故需要搭建Testlink,且出于稳定,考虑在linux环境部署,当然windows系统也是可以的. 系统:64位操作系统 linux:centos6.8 testlink:1.9.14 ...