android cocos2dx 3.15.1创建工程,【随笔】搭建cocos2d-x游戏项目碰到的一些坑

创建cocos2d-x工程cd /Users/chenling/Documents/JSGamePrj/thunder_2/ltfj/client/cocos2d-x-2.2.1/tools/project-creator

./create_project.py -project YUGame -package com.ioschen.game -language cpp

I fixed it by putting:

TARGET_ARCH_ABI := armeabi-v7a

at the very beginning of Android.mk.

../cocos2dx/Android.mk由于每次native-build都会重新从cocos2dx文件夹整个静态编译,其中有个依赖的库文件没有source,所以暂时将这一行注释掉了# LOCAL_WHOLE_STATIC_LIBRARIES += cocos_libxml2_static像这样的依赖,由于下面有call import-module 做编译所以没有问题LOCAL_WHOLE_STATIC_LIBRARIES := cocos_libpng_static

...

...

$(call import-module,libpng)

../project/ldzzmkx/proj.android/jni/Android.mk面向windowsApp用的支付相关代码,在mac下没有编译过去,由于也用不到,所以注释掉# ../../Classes/pay/pay_win.cpp

../Classes/pay_proxy.cpp同上,由于pay_win.cpp没有进行编译,所以预编译代码也要删掉,否则编译时会提示找不到对象// #if ( CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID )

_payInterface = new CPayAndroid();

// #elif ( CC_TARGET_PLATFORM == CC_PLATFORM_WIN32 )

// _payInterface = new CPayWin();

// #endif

../2222/fenghuazhanji/build/build.gradle解决安卓运行时中文乱码,在android{}中添加指定字符集的设定compileOptions {

encoding "GBK"

}

NDK natiave make 时的一些错误cocos2dx2.2.1 编译时提示cule 错误 ,解决方案, 下载更低版本的ndk r10, 重新编译即可

提示obj文件夹下面请求的文件cgwin啥的不存在,原因是这些obj是之前别人在windows的cgwin下编译的,手动将obj文件夹下面的所有文件删除再重新编译即可

../project/ldzzmkx/proj.android/jni/Applcation.mk安卓运行时提示找不到libcocos2dcpp.so

这是因为在我们的libs文件夹下缺少了armeabi-v7a文件夹。只要我们在Application.mk文件中添加如下两句

编译时会自动在libs文件夹中生成对应平台所需的libcocos2dcpp.so文件,如果只在安卓真机上运行,那么只需要armeabi即可

如果需要在安卓模拟器中运行,则x86是必须的。TARGET_CPU_API := armeabi

APP_ABI := armeabi,armeabi-v7a,x86

在使用NDK编译过程中发现针对不同的CPU架构,部分支持编译调试,部分不支持调试,故记录下来,以防忘记

在Application.mk文件中有个预定义命令参数APP_ABI,是指明编译与调试的CPU架构。

目前Android系统支持以下七种不同的CPU架构:ARMv5,ARMv7(从2010年起),x86(从2011年),MIPS(从2012年),ARMv8,MIPS64和x86_64(从2014年),每一种都对应相应的ABI。

CPU架构 ABI

ARMv5 armeabi 32位,从2010年

ARMv7 armeabi-v7a 32位,从2010年

x86 x86 32位,从2011年

MIPS mips 32位,从2012年

ARMv8 arm64-v8a 64位,从2014年

MIPS64 mips64 64位,从2014年

x86_64 x86_64 64位,从2014年

相应生成arm64-v8a,mips64,x86_64下的文件需要NDK_r10以上版本支持。在Application.mk文件里配置APP_ABI的内容。例如指明某个具体的CPU架构

APP_ABI := arm64-v8a

或者直接生成所有的版本

APP_ABI := all

注意:根据不同的NDK版本,APP_ABI := all仅能生成当前版本支持的ABI信息库文件,如果需要生成最新的必须更新相应的NDK版本。

或者明确写明支持的CPU架构

APP_ABI := armeabi,armeabi-v7a,x86,mips,arm64-v8a,mips64,x86_64

建议采用该方法

注意:由于目前版本支持的问题,采用Eclipse+NDK+Windows集成方式开发,对应编译生成对应CPU架构的so文件是没有问题的。但是不一定可以执行调试工作,启动NDK调试模式时将会提示无法识别对应的ABI。

注意:(1)、目前模拟器只有x86_64的没有arm64-v8a的;(2)、在用真机测试armv8-a时,最好先通过adb shell, cat /proc/cpuinfo ,来查看下真机是否是支持armv8-a;(3)、arm32和arm64有些配置参数不能共存,如-msoft-float仅在arm32位下支持,在arm64位下是不支持的.

网上找的说明>

在xcode里面调试首先从别的工程生成一个ios工程目录,然后拷贝到当前游戏目录下(跟android.proj相同阶层)

然后用xcode打开

class目录右键删除红色的参照,右键添加当前游戏class目录中所有的cpp和h文件,不能有子文件夹(比如pay文件夹内的文件也要直接添加在class阶层下)

resouce目录也是同样处理

然后修改工程属性,默认编译target是4.0 , 修改为6.0

即可编译成功

调试使用iphone7模拟器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值