android studio ant编译,Android Studio编译cocos2dx项目

一、所需工具

1、Android studio2.3

2、cocos2dx3.10

3、jdk1.8

4、ndkr9d

5、sdk

6、ant

7、python2.7.14

二、配置环境变量

1、sdk配置:

变量名:ANDROID_SDK_ROOT

变量值:C:\android-sdk-windows(这里写你sdk的根目录,不要在后面加上什么platform之类的,就是根目录!)

2、ndk配置:

变量名:NDK_ROOT

变量值:C:\\android-ndk-r10d(这里写你ndk的根目录,注意我上面的两个\\ 目前我还不清楚为什么,但是在Android studio中如果不加上这个的话,就会报错)然后在Path中添加sdk和ndk的变量值就好了,记得末尾加上分号;同时注意不要是拼音的分号。

3、python配置:

安装python,配置python的根目录到环境变量里。

4、cocos2dx配置:

安装cocos2dx,打开文件夹,双击setup.py,如果一闪而过,说明之前的配置成功,如果出错,说明有配置不对,重新配置之前的那些环境变量。

三、创建cocos2dx项目

1、运行 cocos new HelloWorld -p com.justcode.HelloWorld -l cpp -d D:\demo,新建HelloWorld项目。由于我们通过第二步配置好了环境,cocos命令才能在任意目录下运行。

参数说明:

HelloWorld为项目名称

-p后面接包名

-l后面接开发语言类型,有cpp, lua, js三种类型

-d后面接项目存放的目录

四、导入Android studio

项目目录在proj.android-studio,在导入之前,需要修改一些文件以缩短as编译时间

1、项目下build.gradle文件

dependencies {

classpath'com.android.tools.build:gradle:2.3.3'//修改成自己项目已有的gradle版本

}

2、项目下gradle里面wrapper下gradle-wrapper.properties文件

distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip    //改成自己的gradle版本

3、moudle下build.gradle文件

compileSdkVersion26

buildToolsVersion"26.0.2"

defaultConfig {

applicationId"com.zijinlong.plaza"

minSdkVersion10

targetSdkVersion26

versionCode1

versionName"1.0"

}

//修改成自己的版本

4、..\demo\cocos2d\cocos\platform\android\libcocos2dx

下build.gradle文件

compileSdkVersion 26    //修改

buildToolsVersion "26.0.2"    //修改

useLibrary "org.apache.http.legacy"    //新增

defaultConfig {

minSdkVersion 11

targetSdkVersion 26    //修改

versionCode 1

versionName "1.0"

}

五、运行cocos2dx项目

1、运行cocos compile -p android --android-studio,进行编译。

这一步会在proj.android-studio/app下生成一个libs文件夹,里面是编译出来的libcocos2dcpp.so库文件。注意命令里含有–android-studio,这是专门针对Android Studio进行编译。如果不运行这一步,原生C++代码无法运行。也可以用命令行cocos run -p android --android-studio --ap android-25 直接运行,也能直接生成apk并安装到手机上自动运行,优点是这种方式生成的安装包会比android studio打包生成的小一些,对安装包大小敏感的话可以用这种方式。

六、可能出现的问题

1、

f78719e9a638?from=singlemessage

解决方法:在下载android studio的地址中下载一个tools,把SDK的tools文件夹替换掉,再次编译。这个问题的原因是最新的sdk工具中不再支持android命令,这里替换tools文件为旧版的文件后可以编译(可以搜索tools_r25.2.3-windows.zip下载)。

2、

如果不是新建的项目,而是已经添加了其他C++源文件的项目,那么直接运行这一步会出现如下报错:error: undefined reference to ‘vtable for XXX’。其中XXX就是某个源文件名。这是因为编译器没有在Android.mk文件里面找到相关源文件的地址。所以解决办法就是在这一步之前再添一步,用vi,或者nano,或者其他你喜欢的方式打开proj.android-studio/app/jni/Android.mk,往里面添加相关源文件地址(只要你打开这个mk文件一看就秒懂)。

3、如果出错并提示:在 Android SDK的platforms下未找到文件夹 'android-25',请使用 --ap 指定需要的API版本。

那么找到你的SDK路径下的platforms文件夹,看里面最新版本是多少,比如是android-25的话,那么编译就用cocos compile -p android --android-studio --ap android-25

4、如果提示没有android命令,或android命令已被废除之类的

去下载一个较老版本的SDK(tools_r25.2.3-windows.zip),并把里面的tools文件夹覆盖现有的

5、

f78719e9a638?from=singlemessage

版本管理工具svn的坑,它的设置里面忽略了.a文件,导致其他人提交的cocos2dx工程里面/cocos2d-x/external 下面的所有.a文件缺失了,所以,你自己重新new一个cocos2dx工程,把/cocos2d-x/external 下面的.a文件拷贝到对应的目录然后编译就ok了

6、找不到org.apache.http.HttpEntity的类文件

主要是targetsdk23以上版本不在支持,如果需要使用的话,在build.gradle文件中添加配置:useLibrary "org.apache.http.legacy"

7、make.exe: *** Waiting for unfinished jobs....

[armeabi] Compile++ thumb: cocos2dcpp_shared <= FMContentJsonDictionary.cpp

make.exe: *** No rule to make target `/Developer/Game/CoralSdkDemo/proj.android/

../cocos2d/extensions/assets-manager/AssetsManager.cpp', needed by `obj/local/ar

meabi/objs/cocos_extension_static/assets-manager/AssetsManager.o'.  Stop.

make.exe: *** Waiting for unfinished jobs....

[armeabi] Compile++ thumb: cocos2dcpp_shared <= Menu.cpp

make.exe: Leaving directory `C:/Users/Administrator/Desktop/12/BattleNet_Cocos2x

Demo_V1.0.0/CoralSDK_Cocos2d-x_Demo/proj.android'

Traceback (most recent call last):

File "C:\Users\Administrator\Desktop\12\BattleNet_Cocos2xDemo_V1.0.0\CoralSDK_

Cocos2d-x_Demo\proj.android\build_native.py", line 166, in

build(opts.ndk_build_param,opts.android_platform,opts.build_mode)

File "C:\Users\Administrator\Desktop\12\BattleNet_Cocos2xDemo_V1.0.0\CoralSDK_

Cocos2d-x_Demo\proj.android\build_native.py", line 153, in build

do_build(cocos_root, ndk_root, app_android_root,ndk_build_param,sdk_root,and

roid_platform,build_mode)

解决办法:搜索project.android目录下的.o .d文件类型,并且删除之后重新编译即可通过;

8、更多问题自行百度

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值