zoukankan      html  css  js  c++  java
  • [置顶] cocos2dx 2.x版本之win32 window移植android 环境搭配 只用NDK 超级详细 android 环境搭配

    欢迎转载:请保留原文出处 谢谢

    第一步:android开发环境搭配

    这里我只介绍myeclipse  eclipse差不多。

    myeclipse 9.0的help——myeclipse configuration center——software——browse software——addsite

    其中打开configuration center有点慢  要耐心一下

    如下图所示:

    如果是把adt解压的话就选择add form Local  Folder  如果不解压就用add form archive file
    1、"Help"菜单下面的center命令:如图,打开WorkSpace Center页面


    2、选择Software选项卡,如图:


    3、点击“add site”,打开“Add Updates Site”对话框。添加ADT……





    4、添加完ADT连接之后,点击“OK”,回到Software选项卡,可以看到ADT已经被添加进来,如图:



    5、最重要一步:单独选中“Android DDMS”,点击“add site”上面的“+”号就可以把此插件添加到“My Software”列表,依次把需要添加的插件添加进去,如下:






    6、最后我们会看到“Pending Changes”区域会显示changes,单击“apply”就可以了,网线慢的情况会很慢。

    这里会有电慢 请耐心等待

    7、最好重启MyEclipse就可以安装成功 了,如图:


     

    8、重启后会提示你安装android sdk manager 如果下有sdk manager 就指定sdk manager吧  不然你点击就会帮你下sdk manager

    9、设置Android sdk manager打开Myeclipse后,winodw->preferences->Android->SDK Location位置选择你解压的Android SDK根目录

    10、测试开发环境是否搭建成功

    File->New->Project->Android->Android Project

    第二步 如何从cocos2d-x 源码移植到android上

    STEP 1:配置android工程生成器


    用edit plus之类编辑器打开 cocos2d-x目录下的 create-android-project.bat,并进行修改。





    注意:上述文件中的几个路径一定要与你自己的路径对应起来!


    STEP 2:创建android工程

    这一步是通过运行cocos2d-x目录下的create-android-project.bat实现的(在WINDOWS资源管理器中右键单击此文件,然后选择以管理员身份运行即可)。参考其它的资料,我使用管理员身份运行此文件的(一般运行情况还没有试验)。

    然后,屏幕上提示你输入包名和项目名。
    注意:如果在2.0.2版本中,如果你输入一个已经存在的项目名,则系统会提示你,已经存在同名,不允许你创建并退出。另外一定要小记注意,这一步是运行文件 create-android-project.bat而不是另一个相同主文件名的create-android-project.sh!!!-----这个文件后面才使用; 否则整个步骤乱套了!!!


     


    ------->project name

    ------->拉到最后面,填入版本号对应的id,如上面id:1对应 “android 2.1”版本


    打开cocos2d-x更目录,可以发现一个HelloWorld目录如下:




    STEP 3:导入代码和有关资源

    现在,
    把你win32项目里的Classes拷贝到当前Classes下。然后把你win32项目里的Resources拷贝到当前Resources下。
    提示:2.0.2版本与1.x版本中管理资源的方式发生了较大变化,请注意这一点。当然,在高版本中,管理更为方便和科学了。
    提示2:直接使用覆盖方式复制粘贴即可另外还要想着把最初系统自动生成的几个可能不再有用的文件删除。


    STEP 4:编辑jni文件夹下的android.mk等文件

    这一步比较复杂,要求你最好深入理解application.mk和android.mk这两个文件在NDK编程中的位置及详细作用。在此不具体展开介绍了。

    因为,我的例子是一个由系统向导自动生成的HELLO WORLD级的程序,所以,一路走下来非常顺利。
    我的android.mk文件修改为如下形式:
    LOCAL_PATH := $(call my-dir)

    include $(CLEAR_VARS)

    LOCAL_MODULE := game_shared
    #LOCAL_MODULE_FILENAME := libgame

    LOCAL_SRC_FILES := hellocpp/main.cpp \
    http://www.cnblogs.com/Classes/AppDelegate.cpp \
    http://www.cnblogs.com/Classes/HelloWorldScene.cpp

    LOCAL_C_INCLUDES := $(LOCAL_PATH)/http://www.cnblogs.com/Classes \
    $(LOCAL_PATH)/http://www.cnblogs.com/../cocos2dx \
    $(LOCAL_PATH)/http://www.cnblogs.com/../cocos2dx/platform. \
    $(LOCAL_PATH)/http://www.cnblogs.com/../cocos2dx/include \
    $(LOCAL_PATH)/http://www.cnblogs.com/../cocosDension/include


    LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static cocosdenshion_static cocos_extension_static

    include $(BUILD_SHARED_LIBRARY)

    $(call import-module,CocosDenshion/android) \
    $(call import-module,cocos2dx) \
    $(call import-module,extensions)
    我的更改有:
    1,注释掉了LOCAL_MODULE_FILENAME := libgame这一句。
    2,把共享库名字更改为game_shared,对应于eee21.java文件中的下面一句必须作相应的修改:
    System.loadLibrary("game_shared");

    3,根据我的ANDROID工程所在位置修改了头文件引用部分。

    LOCAL_C_INCLUDES := $(LOCAL_PATH)/http://www.cnblogs.com/Classes \
    $(LOCAL_PATH)/http://www.cnblogs.com/../cocos2dx \
    $(LOCAL_PATH)/http://www.cnblogs.com/../cocos2dx/platform. \
    $(LOCAL_PATH)/http://www.cnblogs.com/../cocos2dx/include \
    $(LOCAL_PATH)/http://www.cnblogs.com/../cocosDension/include

    其中, $(LOCAL_PATH)是jni文件夹,于是相对于这一级文件夹,你的cocos2d-x系统的相应的头文件在哪一级文件夹下要明明白白才行。

    STEP 5:使用ECLIPSE再编译并打包到真机测试


    使用新建android项目下的Create project from existing source:

    File -> New -> Project...在随后的"New Project"对话框中选择Android->Android project from existing code,如下所示:



    随后出现导入工程对话框,类似(来自于另一个实例)下图所示:



    STEP 六:使用ECLIPSE再编译并打包到真机测试

    其中过程可能出现几个个问题

    第一个是

    org.cocos2dx.lib.Cocos2dxActivity找不到问题

    解决方法:
        复制 ***\cocos2dx\platform\android\java\src\ (***为cocos2d-x更目录) 到你android项目中的src文件夹中
    这样就又有一个麻烦问题,是不是每次创建都要复制呢,答案当然是否定的,来看一劳永逸的方法,定位 (cocos2d-x根目录)\template\android\,用文本文件打开 copy_files.sh,找到 copy_src_and_jni() 函数,添加入下代码  

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

    第二问题个是还需要配置项目的构建器,不然编译会崩溃

    配置NDK编译环境
    右键SimpleGmae项目,选择Properties-》Builders-》New-》Program-》OK


    然后进行如下设置:
    Location:选择ndk安装目录下的ndk-build.cmd 命令
    Working Directory:选择SimpleGame
    选择Refresh,配置如下:
    配置Build Options,如下图所示
    修改新建的Builder的名字为Ndk_Builder,设置完成后,点击ok,然后把点击up按钮把Ndk_Builder调到最上面。如图:

    第三个问题是最好不要用模拟器调试,用模拟器的话开启模拟器GPU测试,而且要4.0以上版本

    最好是真机吧

    回帖是美德谢谢   羊城|小羊驼   部分是copy人家的帖子 +自己整理

  • 相关阅读:
    sweep line 扫描线模型
    双指针&整数二分思路总结
    ELF文件格式
    flask-migrate数据库迁移出现sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (2059, <NULL>)
    腾讯面试题
    zabbix 调用飞书发送消息
    NFS服务部署
    Linux系统启动
    电商系统nuxt的布局目录代码分享
    电商系统中进行流量控制
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3024883.html
Copyright © 2011-2022 走看看