cocos2d-x compile打包apk

2015年02月26日 10:54 0 点赞 0 评论 更新于 2025-11-21 16:27

在使用cocos2d-x 3.2在Windows环境下为Android平台打包APK时,许多新手会感到困惑。下面我将分享自己的一些经验。

一、下载Android环境

搭建Android环境需要用到Android SDK、NDK、Ant和JDK。具体下载内容如下:

  • 下载Android SDK
  • 下载Android NDK
  • 下载Android JDK
  • 下载Ant

其中,JDK需要进行安装,其他工具直接解压即可。建议将SDK、NDK和ANT解压缩到同一个文件夹中,例如我将解压后的文件都放在了e:\Android文件夹下。

如果下载的SDK是adt文件,需要将里面的SDK文件夹提取出来并进行修改。

二、配置JDK

JDK安装完成后,需要手动配置环境变量,具体步骤如下:

  1. 新建JAVA_HOME变量:在系统变量中新建JAVA_HOME变量,变量值为JDK的安装路径,例如C:\Program Files\Java\jdk1.8.0_05,请根据自己的实际安装路径填写。
  2. 新建classpath变量:新建系统变量classpath,变量值为.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar,注意前面的“.”不要忘记,它表示当前路径。
  3. 修改path变量:在系统变量path(该变量已存在,无需新建)中添加变量值%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin,变量值之间用“;”隔开。

环境变量解析

  • JAVA_HOME:表示JDK的安装路径。
  • classpath:是Java加载类的路径,只有类在classpath中,java命令才能识别。前面的“.”表示当前路径。
  • path:配置该变量后,系统在任何路径下都可以识别javajavac命令。

配置完成后,打开cmd命令窗口,输入javajavac并回车。如果没有打印“java不是内部或外部命令”,则说明配置成功。

三、配置Ant环境变量

将Ant的存放路径添加到系统Path变量中。

四、配置cocos2dx 3.1 Android环境关联

完成上述准备工作后,打开cocos2dx目录下的setup.py文件,依次输入以下路径:

  1. NDK的路径。
  2. SDK的路径。
  3. Ant的路径。

当三个路径都配置完毕后,即可完成环境关联。

五、打包APK

注意事项

在打包APK之前,需要修改proj.android/jni文件夹下的Android.mk文件,添加自己新增的CPP文件。这里的新增文件指的是非cocos2dx生成的项目文件。务必将自己新增的文件或文件夹包含进APK。

打包步骤

  1. 以官方的cpp-tests项目为例,按住Shift键并右键单击项目文件夹,选择“在此处打开命令窗口”。
  2. 使用cocos compile -p android --ap 20方式编译APK文件。其中--ap 20是指定Android平台版本,我使用的是20,也可以根据自己下载的版本选择19等其他版本。
  3. 运行cocos run -p android --ap 20。当出现“ -waiting for device - error: ”时,按Ctrl + C终止操作。
  4. 等待编译完成。需要注意的是,cocos2d-x 3.2版本使用的是android-20,如果E:\Android\sdk\platforms目录下没有android-20文件夹,请创建一个空的。
  5. 编译完成后,查看生成的APK文件,并可以安装到手机上进行测试。

竖屏设置

如果需要将项目在真机上设置为竖屏,只需在proj.android文件夹下的AndroidManifest.xml文件中修改android:screenOrientation属性。将其值设置为"landscape"表示横屏,设置为"portrait"表示竖屏,默认值为横屏。

六、异常处理

1. Android平台未指定错误

Android platform not specified, searching a default one...
Can't find right android-platform for project :
"F:\cocos2d-x-3.1.1\tests\cpp-tests\proj.android".
The android-platform should be equal/larger than 20

解决办法:在相应目录下创建一个空的android-20文件夹,同时检查命令是否为--ap 20(注意是双连字符),并查看\proj.android目录下的project.properties文件是否指定为android-20

2. make.exe编译错误

make.exe: *** No rule to make target `/home/tubuntu/game/android-ndk-r9d/sources/android/cpufeatures/cpu-features.c', needed by `obj/local/armeabi/objs/cpufeatures/cpu-features.o'.  Stop.

解决办法:从后缀名来看,这是编译中间文件,可以删除。MakeNo rule to make target错误一般表示文件已经存在,无需再编译。因此,进入E:\cocos2d-x-3.2\Projects\HelloCpp111\proj.android\obj\local\armeabi,将objs-debug文件夹下的所有文件(包括文件夹)全部删除。

3. make.exe生成libcoccos2dcpp.so错误

make.exe:***obj/local/libcoccos2dcpp.so……

解决办法:该问题是由于没有在Android.mk文件中添加自己的文件导致的。进入E:\cocos2d-x-3.2\Projects\HelloCpp111\proj.android\jni文件夹,打开Android.mk文件,添加自己的文件。

4. 找不到gcc工具链错误

Couldn't find the gcc toolchain

解决办法:检查NDK的配置路径,确保NDK_ROOT设置正确。cocos2d-x 3.1版本需要使用最新的NDK版本,建议从安卓网站下载最新的版本r9d

5. Android API问题

如果遇到Android API问题,找到对应的工具进行更新,根据提示缺少的API进行更新。但由于Google被封禁,更新过程可能会比较慢。

作者信息

boke

boke

共发布了 3994 篇文章