cocos2dx3.0进行android编译apk安装包的一些经验总结

来源:互联网 发布:forespider软件 编辑:程序博客网 时间:2024/05/18 01:09

目标:在visual studio 2012下用cocos2dx 3.0beta2引擎(用lua脚本语言也行)进行游戏开发,然后将做好的游戏进行编译打包,最终生成.apk可在手机上安装的文件

采用的软件列表:(自己下载对应的新版本,64bit or 32 bit)

1.python:(用于脚本的执行),这里最好选择2.7的版本,因为在cocos2dx的projectname\proj.android\build_native.py文件中的有很多print函数调用采用print "hello"这种方式,对于python3.0以上版本会报语法错误

2.NDK:帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。

3.ANT:Ant是一种基于Java的build工具。理论上来说,它有些类似于(Unix)C中的make ,是一个流程脚本引擎,用于自动化调用程序完成项目的编译,打包,测试

4.SDK:google提供的用于android开发的API

5 Cocos2dx:我们自己写好的项目文件等

6.JDK:eclipse,android等开发需要的java API和运行环境等

7.cygwin:模拟linux环境的软件

实现的步骤:

1.首先用cocos2dx实现我们的功能项目文件

2.配置好上面这些软件的环境变量信息

     我自己配置的环境是

    a.Python:PY_HOME   C:\Python27

    b.NDK:   NDK_ROOT    D:\android-ndk-r9d

    c.ANT:ANT_HOME   C:\ant

    d.SDK: :ANDROID_SDK_ROOT    D:\adt-bundle-windows-x86_64\sdk

    e.Java的classpath:classpath   C:\Program Files\Java\jdk1.8.0\jre\lib

    f.JDK(java):   JAVA_HOME     C:\Program Files\Java\jdk1.8.0

3.在目录projectname\proj.android\中,即你cocos项目帮我们生成的一个android项目下

    a.执行android update project -p . -t android-10(这个android调用的命令是使用了SDK自带的android.bat工具,在目录<sdk>tools\android.bat下)

这个命令会帮我们生成文件local.properties、ant.properties、build.xml等项目生成需要的配置信息,其中我的local.properties内容是:sdk.dir=D:\\adt-bundle-windows-x86_64\\sdk,指定了自己SDK的位置,在build.xml文件中最后一行有<import file="${sdk.dir}/tools/ant/build.xml" />,这样会调用google为我们提供android开发API:SDK下带有的工具ANT,在目录D:\adt-bundle-windows-x86_64\sdk\tools'ant下的文件build.xml,这个文件定义了大量的基础构建方法和打包策略。(当然我们也可以不调用android update...这个命令,直接将文件<sdk.dir>/tools/ant/build.xml拷贝到项目proj.android下面,不用像这样生成自己的build,xml然后引用google的build.xml)

    b.执行proj.android目录下的build_native.py,这个文件中首先定义了num_of_cpu、SDK、NDK、toolchain_version的环境变量信息,然后调用一个do_build函数来执行NDK编译这个cocos的C++项目,使它能被java环境下开发识别(生成的动态库结果保存在当前项目的libs\armeabi文件夹下)

    c.打开软件cygwin,cd d:进入到D盘,这是个模拟linux的环境的软件,我们cd目录转到自己proj.android目录下,执行ant debug(通过调用C盘下载好的ant软件和在该proj.android目录下的build文件内提供的打包策略信息-之前我们update生成的,来编译和打包之前NDK编译好的so动态库等文件-在当前项目的libs\armeabi文件夹下),这样在我们项目的proj.android的bin目录下就能找到对应打包生成的apk文件,其中有个debug-unaligned是个内存未对齐的打包版本。《具体的ant怎么打包编译的可以去C盘下ant目录的bin文件夹查看》

此时出现问题:

BUILD FAILED
D:\adt-bundle-windows-x86_64\sdk\tools\ant\build.xml:601: The following error occurred while executing this line:
D:\cocos2d-x-3.0beta2\project\NTESGame2048\cocos2d\cocos\2d\platform\android\java\build.xml:46: sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var

解决方法:将D:\cocos2d-x-3.0beta2\project\NTESGame2048\proj.android 目录下的文件project.properties(之前执行android_update.bat生成的文件)最后一行

android.library.reference.1=../cocos2d/cocos/2d/platform/android/java用"#"符号注释掉

    d.最后,将这个.apk文件拷贝入手机,安装执行就OK 了

最后补充下,在eclipse软件下打开proj.android整个文件夹下的项目文件,插上自己的手机,能够模拟查看生成的.apk文件的执行过程


自己碰到的奇葩问题:安装上apk,直接闪退,没有效果,然后我就自己用ecplise来进行一个打包的工作:

1.导入项目:eclipse添加入当前的android项目:cocos项目位置\proj.android 

2.添加src文件

把cocos2d-x-3.0beta/cocos/2d/platform/android/java/src/org/cocos2d-x/lib整个文件夹拷贝到你的项目下proj.Android/src/org/cocos2d-x下

//右键工程名->Properties->Java Build Path->Source->Link Source->Linked Folder Location(添加目录:cocos2d-x3.0\cocos\2d\platform\android\java\src)

->Fold Name(输入cocossrc等,不能用src,包会重名)

//把cocos2d-x-3.0beta/cocos/2d/platform/android/java/src/org/cocos2d-x/lib整个文件夹拷贝到你的项目下proj.Android/src/org/cocos2d-x下->保存(finish)

3.直接右键工程,run as->android application(这里自己的手机插上了电脑的USB接口并且被eclipse识别)这是自己的手机就能模拟执行apk的展示效果


More:自己的酷派手机9070开始手机驱动一直都连不上,不能被识别(在cmd中键入adb devices命令可以查看当前连接上电脑的设备),后来就下载了一个豌豆荚软件帮我安装一个手机驱动软件,最后就OK了!不是打广告,大家别拍我  =。=                                                                                  

                                                                                                                                                                                                                                                          Leonjhan  At NTES  4/2/2014

0 0
原创粉丝点击