cocos2d-x移植到android 亲测

来源:互联网 发布:邮轮客房知乎 编辑:程序博客网 时间:2024/05/21 22:30

网上各种移植方法,看的蛋疼,各种失败。

以下是本人亲测的方法。

cocos2d-x 版本2.1.5

ndk r8e

eclpse sdk具体配置看网络。

运行create_project.py会在工程目录项生成prj.android文件夹。

然后使用eclipse导入这个项目。

具体方法看下面的网址。

http://blog.csdn.net/yangyu_c/article/details/10124127

以上两个交叉着看,尤其是配置环境builder的时候。

 

说说自己遇上的问题

 

1.Cocos2dxActivity cannot be resolved to a type解决等等
解决方法:只需要将cocos2d-x引擎的根目录的cocos2dx/platform/android/java/src文件夹下文件夹全部复制到项目的src包下即可。

 2.别忘了将resource的资源拷贝到assert文件夹下。

3.编译的时候没问题,运行时候eclipse显示无法加载cocos2dcpp库,废了很大劲 发现之前有个错误信息,

4.在版本2.33的模拟器上无法运行,好像是在4.0以上可以

5.如果是新创建工程 删除helloworldscene 文件 要不显示重复定义

Android-14 Is Larger Than android:minSdkVersion 8

在项目里的jni/Application.mk文件里加入一行

APP_PLATFORM := android-8

即可.

为什么会有这个警告?

在android上项目里,可以在AndroidManifest.xml中写入

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17"/>

来表示程序可以运行的最低android设备是android 2.2(API Version 8), 经过详细测试的目标android版本是android 4.2.2(API Version 17).这里定义的是Java API Version

再来看一下ndk(版本r8e)目录下的platforms文件夹,可以看到

android-3android-4android-5android-8android-9android-14

一共有6个文件夹,分别表示相应的Native API Version


看到这里就明白了,那个警告的意思就是说,使用的Native API Version比最低版本Java API要高,可能导致的问题就是:
在Native Code里使用了一个
platforms/android-14下的API函数,然后程序在 android-8 的设备上运行,当然这个函数在android-8设备上是不存在的,就会崩溃了


为什么Native API的版本数量会少于Java API?

因为android在版本升级的时候,有时候只升级了Java层的API,而Native层的却没有变化

 

 

 

折腾了一个星期的晚上下班时间,总算将一个小的demo移植到android上了。

0 0
原创粉丝点击