文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

详细解读Cocos2d Android 项目的生成与运行中存在的问题

懒人小魔法师

懒人小魔法师

2024-04-23 23:24

关注

  对于Cocos2D-Android,估计很多同学都不甚了解,本篇教程将带你详细解读Cocos2D-Android项目的生成与运行中存在的问题。

  通过构建了Cocos2d的Android开发和build环境

  貌似运行了几个批处理,但实际遇到若干问题,通过分析其内部机制才得以解决

  生成项目

  运行create-android-project.bat看看此批处理做的事情:

  1)用AndroidSDK的android.batcreate生成空eclipse项目

  call"%_ANDROIDTOOLS%\\android.bat"createproject-n%_PROJECTNAME%-t%_TARGETID%-k%_PACKAGEPATH%-a%_PROJECTNAME%-p%_PROJECTDIR%\\proj.android

  2)用android.batupdate填充项目

  call"%_ANDROIDTOOLS%\\android.bat"updateproject-l../../cocos2dx/platform/android/java-p%_PROJECTDIR%\\proj.android

  就是把cocos2dx/platform/android/java中的文件(Cocos2dxActivity.java,Cocos2dxBitmap.java,etc.)copy到空项目中

  3)复制文件其他项目文件

  create-android-project.bat调用了cygwin的脚本去复制文件(cocos2d-2.1rc0-x-2.1.2\\template\\android\\copy_files.sh)

  a)复制helloworld

  #from Hello World copy src and jni to app_DIR

  copy_src_and_jni(){

  cp-rf$HELLOWORLD_ROOT/proj.android/jni$APP_DIR/proj.android

  cp-rf$HELLOWORLD_ROOT/proj.android/src$APP_DIR/proj.android

  #replaceAndroid.mk

  sh$COCOS2DX_ROOT/template/android/gamemk.sh$APP_DIR/proj.android/jni/Android.mk$NEED_BOX2D$NEED_CHIPMUNK$NEED_lua

  }

  还要copybuild_native.sh等等

  现在生成的项目结构是

  AppHome------Classes(HelloWorldScene.cpp,AppDelegate.cpp.etc)

  ------proj.android(eclipse的项目结构)

  ------Resources(helloworld.png.etc)

  编译Native

  用cygwin进入目录proj.android,而后运行build_native.sh,它做的事情如下:

  1)把Resources下的图片copy到proj.android/asset下

  2)而后执行ndk-build,目标是运行proj.android/jni/Android.mk

  --------------Android.mk---------------

  LOCAL_PATH:=$(callmy-dir)

  include$(CLEAR_VARS)

  LOCAL_MODULE:=game_shared

  LOCAL_MODULE_FILENAME:=libgame本module是生成libgame

  本module直接包含的文件

  LOCAL_SRC_FILES:=hellocpp/main.cpp\\

  ../../Classes/AppDelegate.cpp\\

  ../../Classes/HelloWorldScene.cpp

  LOCAL_C_INCLUDES:=$(LOCAL_PATH)/../../Classes

  LOCAL_WHOLE_STATIC_LIBRARIES:=cocos2dx_staticcocosdenshion_staticcocos_extension_static本module依赖的静态库

  include$(BUILD_SHARED_LIBRARY)

  $(callimport-module,CocosDenshion/android)\\引入CocosDenshion/android/Android.XML生成cocosdenshion_static

  $(callimport-module,cocos2dx)\\引入cocos2dx/Android.xml生成cocos2dx_static(libcocos2d.a)

  $(callimport-module,extensions)引入extensions生成cocos_extension_static

  如果你看见最后一行buildlog如下:你build成功了

  Install:libgame.so=>libs/armeabi/libgame.so

  最总生成proj.android/libs/armeabi/libgame.so,包含所有的native

  最后在eclipseimport项目就可可以编译了

  问题

  但可能由于Cocoscopyfiles做得不完善,可能存在若干问题

  1)eclipse中org.cocos2dx.lib下面没有看见文件,但用win资源管理器能看到文件,但没有权限打开

  可以删除这些,在直接cocos2dx/platform/android/java复制

  2)运行create-android-project.bat时,log提示某些目录或文件权限不够

  干脆以管理员权限运行

详细解读Cocos2d Android 项目的生成与运行中存在的问题_Cocos2D-Android_Cocos2D-Android教程_Cocos2D-Android项目生成_编程学习网

 

  3)有的文件因为权限不够而没有编译,但系统不给错误信息

  比如hellocpp/main.cpp,没有编译,运行后Frame大小不对

  修改main.cpp权限,再次编译

  如果生成项目再出现问题,相信也可以用直接手工copyfile的方法解决了

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-游戏开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯