• cocos2d-x3.2 studio -------- 打包apk


     从cocos2dx 3.2项目打包成apk安卓应用文件,搭建安卓环境的步骤有点繁琐,但搭建一次之后,以后就会非常快捷!

    (涉及到3.1.1版本的,请自动对应3.2版本,3.x版本的环境搭建都是一样的)

    一、下载Android环境

    搭建Android环境需要用到Android SDK、NDK、Ant和JDK;

    Android SDK下载http://developer.android.com/sdk/index.html

    Android NDk下载http://developer.android.com/tools/sdk/ndk/index.html

    Android JDK下载http://www.oracle.com/technetwork/java/javase/downloads/index.html

    Ant下载http://ant.apache.org/bindownload.cgi

    其中JDK是需要安装的,其他的都直接解压即可。将SDK NDK 和ANT解压缩到同一个文件夹中,我解压后文件都放在了e:Android文件夹下

     

    SDK如果下载下来的adt文件那么把里面的SDK文件夹考出来,修改后

     

    二、配置JDK

    在JDK安装完毕之后,需要手动进行环境变量的配置

    1、系统变量里新建JAVA_HOME变量,变量值为:C:Program FilesJavajdk1.8.0_05(根据自己的安装路径填写)

    2、新建系统变量classpath变量,变量值为:

    .;%JAVA_HOME%lib;%JAVA_HOME%lib ools.jar (注意前面的. 不要忘记了)

    3、在系统变量path变量(已存在不用新建)添加变量值:

    %JAVA_HOME%in;%JAVA_HOME%jrein(注意变量值之间用“;”隔开)

    环境变量的解析:

    JAVA_HOME:jdk的安装路径

    classpath:java加载类路径,只有类在classpath中java命令才能识别,在路径前加了个"."表示当前路径。

    path:系统在任何路径下都可以识别java,javac命令。

    在配置完成之后,我们打开cmd命令窗口,输入java或javac 回车,如果不是打印“java不是内部或外部命令”那就说明配置成功了。

     

     

     

    三、配置Ant环境变量

    把ant的存放路径加入系统Path变量。

     

    四、配置cocos2dx 3.1 Android 环境关联

    以上已做好准备工作,打开cocos2dx目录下的 setup.py。

     

    输入ndk的路径。

     

    输入sdk路径

     

    最后输入的是 ant的路径

    OK,三个路径都已经配置完毕

     

    五、打包Apk

    然后就可以在项目目录下使用 cocos compile -p android方式编译APK文件了。

    注意:在打包apk之前需要修改proj.android/jni文件夹下的Android.mk文件 添加自己新增的CPP文件,这里的新增指的是非cocos2dx生成的项目文件(自己新增的文件)。一定要把自己新增的文件或文件夹包含进apk。

    首先我们拿官方的 cpp-tests项目来试手吧!

    按住shift键+鼠标右键 选择在此处打开命令窗口。

     

    然后就可以使用 cocos compile -p android --ap 20方式编译APK文件了(--ap 20是指定android平台)

     

    漫长的等待吧,当然这里要提醒一点3.1版本用的是 android-20,如果E:Androidsdkplatforms目录下没有android-20 请创建一个空的。

     

    等待完毕之后 看下这个文件夹下的 apk吧!可以安装到手机上试一下了。

    六、异常处理:(我會不定時的更新遇到的問題,讓大家都不走彎路)

    1、  Android platform not specified, searching a default one...

    Can't find right android-platform for project :

    "F:cocos2d-x-3.1.1 estscpp-testsproj.android".

    The android-platform should be equal/larger than 20

    如果你遇到这个问题,那么就要在

    下创建一个空的android-20文件夹,这个问题坑了我很久!同时要查看命令是否是 –ap 20(双-)。

    检查proj.android目录下的project.properties是否是android-20

     

    2、  编译时,提示找不到gcc工具链 (Couldn't find the gcc toolchain)。

    这个问题也烦了我很久!去检查下ndk的配置路径!NDK_ROOT是否正确!然后3.1版本需要的NDK是最新的版本,

    去安卓网站http://developer.android.com/tools/sdk/ndk/index.html#Installing下一个最新的版本r9d吧!

    3、  如果遇到android api问题

    找到运行进行更新,看缺哪个api就更新哪个,不过这个更新比较慢……原因google被禁……

    4、Android NDK: Invalid APP_STL value: c++_static 這個要修改jni/Application.mk

    APP_STL := c++_static

    NDK_TOOLCHAIN_VERSION=clang

    APP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -std=c++11 -fsigned-char

    APP_LDFLAGS := -latomic

    改成:

    APP_STL := gnustl_static

    # add -Wno-literal-suffix to avoid warning: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix] 

    # in NDK_ROOT/arch-arm/usr/include/sys/cdefs_elf.h:35:28: when using ndk-r9

    APP_CPPFLAGS := -frtti -DCOCOS2D_DEBUG=1 -std=c++11 -Wno-literal-suffix -fsigned-char

    5、Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion 8 

    这是因为NDK指定的版本与minSdkVersion不一致的问题,修改AndroidManifest.xml文件 其中android:minSdkVersion修改為<uses-sdk android:minSdkVersion="20"/>

  • 相关阅读:
    版本号中Snapshot的含义
    Spring Security 过滤器链
    Spring Security入门
    签个到
    Centos下Mysql密码忘记解决办法
    idea 修改静态资源不需要重启的办法
    X509证书信任管理器类的详解
    一、DES加密和解密
    Spring Boot中的事务管理
    SpringBoot JPA实现增删改查、分页、排序、事务操作等功能
  • 原文地址:https://www.cnblogs.com/dudu580231/p/4840847.html
Copyright © 2020-2023  润新知