1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > android studio ant编译 Android Studio编译cocos2dx项目

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

时间:2020-11-18 04:01:26

相关推荐

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\:///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、

解决方法:在下载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、

版本管理工具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、更多问题自行百度

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。