• 【转载】cocos2d-x-3.0beta on android 打包错误问题


    试玩 cocos2d-x-3.0beta on android

    1 环境准备

    Android SDK Manager:

    ps: 这次儿我把环境都提升到了最新状态,除了Java仍为jdk-7u45。

    1.1 前提说明

    1. 首先,以下都是在Win7 32位上操作的。
    2. 其次,这里假设上述环境都安装在了E:盘。

    1.2 配置环境变量

    ANDROID_SDK_ROOT = E:android-sdk-windows
    NDK_ROOT = E:android-ndk-r9c
    ANT_HOME = E:apache-ant-1.9.3
    PY_HOME = E:Python27
    JAVA_HOME = C:Program FilesJavajdk1.7.0_45
    
    NDK_TOOLCHAIN_VERSION = 4.8
    

    ANDROID_SDK_ROOT太长了,可以另外设个:

    SDK_ROOT = E:android-sdk-windows
    

    然后:

    Path += %SDK_ROOT%	ools;%SDK_ROOT%platform-tools;%NDK_ROOT%;
            %ANT_HOME%in;%PY_HOME%;%PY_HOME%Scripts;%JAVA_HOME%in;...
    

    ps: ANDROID_SDK_ROOT,NDK_ROOT,NDK_TOOLCHAIN_VERSION之后运行android-build.py,build_native.py时会用到。

    2 编译HelloCpp样例

    位置: E:cocos2d-x-3.0betasamplesCppHelloCpp

    2.1 android-build.py

    位置: E:cocos2d-x-3.0betauildandroid-build.py

    打开CMD,到其目录位置,然后:

    ps: Win7下可以直接在其目录"ctrl+shift+right click"选择"在此处打开命令窗口"或"w+enter"。

    // 仅运行`android-build.py`可看参数说明
    android-build.py -p 13 -b debug hellocpp
    

    继而,进入HelloCpp工程位置,即E:cocos2d-x-3.0betasamplesCppHelloCppproj.android

    在连接上手机后,运行ant installd安装编译好的debug版。

    3 自己来创建个HelloCocos呢?

    3.1 create_project.py创建工程

    位置: E:cocos2d-x-3.0beta oolsproject-creatorcreate_project.py

    直接运行create_project.py即可,会冒出个高端的Tk界面。

    projectName: HelloCocos
    packageName: org.join.hello.cocos
    projectPath: E:/
    language: cpp
    

    create,然后E:HelloCocos即是我们的工程了。

    3.2 build_native.py编译so

    位置: E:HelloCocosproj.androiduild_native.py

    进入HelloCocos工程位置,即E:HelloCocosproj.android

    build_native.py即会开始编译so。

    3.3 ant编译android工程

    首先,需要为cocos2dx在android平台的java lib代码,添加android library工程支持。

    位置: E:HelloCocoscocos2dcocos2dplatformandroidjava

    // 添加android library工程支持
    android update lib-project -t android-13 -p .
    

    然后,继续回到HelloCocos工程位置,为其添加android工程支持。

    // 添加android工程支持
    android update project -p . -t android-13
    // 编译并安装(debug版)
    ant debug install
    

    详见:Managing Projects from the Command Line

    4 其他说明

    4.1 为什么Android平台选择了13,即Android 3.2?

    生成项目(包括samples)的AndroidManifest.xml,其activity的configChanges默认设置了smallestScreenSize,而其在API 13才支持。详见:<activity>

    或者,去除设置,以选择较低版本。否则,会有如下错误:

         [aapt] E:cocos2d-x-3.0betasamplesCppTestCppproj.androidinAndroidMan
    ifest.xml:13: error: Error: String types not allowed (at 'configChanges' with va
    lue 'orientation|screenSize|smallestScreenSize').
    
    BUILD FAILED
    E:android-sdk-windows	oolsantuild.xml:653: The following error occurred whi
    le executing this line:
    E:android-sdk-windows	oolsantuild.xml:698: null returned: 1
    

    4.2 cocos2dx library如何依赖的?

    Android工程还需要依赖cocos2dx的java lib代码,其是通过project.properties的android.library.reference.1设的依赖。详见:Referencing a Library Project

    此外,需要先给cocos2dx的java lib代码添加android library工程支持(步骤3.3)。否则,执行ant时会遇到如下错误:

    BUILD FAILED
    E:android-sdk-windows	oolsantuild.xml:601: The following error occurred whi
    le executing this line:
    E:cocos2d-x-3.0betacocos2dplatformandroidjavauild.xml:46: sdk.dir is mis
    sing. Make sure to generate local.properties using 'android update project' or t
    o inject it through an env var
    

    4.3 NDK_TOOLCHAIN_VERSION=4.8,用来指定编译链为gcc 4.8。

    位置: E:android-ndk-r9c oolchainsarm-linux-androideabi-4.8

    这个需要设为环境变量,运行android-build.py,build_native.py时会进行检测。不然,它也可以添加在Application.mk(如果你通过命令行来编译的话)。

    然后,指定gcc4.8,是由于cocos2dx 3.0引入了c++11特性。有关c++11特性,可以阅读以下内容:

    4.4 私钥签名

    ant.properties,增加key.store、key.alias属性。

    如果要免去密码输入的话,可以增加key.store.password、key.alias.password属性。

    key.store=keystore路径
    key.alias=keyalias名称
    key.store.password=keystore密码
    key.alias.password=keyalias密码
    

    详见:Signing Your Applications

    ps: ProGuard混淆没什么必要了。

    5 命令行编译

    需要注意:Resources内的东西需要手动拷贝到proj.androidassets内。另外,对于TestCpp样例,要删掉Images下的.gz文件。

  • 相关阅读:
    014
    013
    012
    011
    009
    009
    008
    适用于可迭代对象的通用函数
    ubuntu中将py3设置为默认的python
    linux系统下安装gtk
  • 原文地址:https://www.cnblogs.com/dudu580231/p/5724635.html
Copyright © 2020-2023  润新知