cocos2d-x3.0]IOS->Android跨平台+NDK+Eclipse环境搭

[cocos2d-x3.0]IOS->Android跨平台+NDK+Eclipse环境搭建及其注意事项
 

1: 必要准备

  1): jdk&jre

  2): adt-bundle

  3): android ndk r9

  4): python2.7

  5): cocos2d-x 3.0 alpha0

2: 依次安装或者解压

3: 添加/扩充环境变量

  用户根目录下:

1: 必要准备

  1): jdk&jre

  2): adt-bundle

  3): android ndk r9

  4): python2.7

  5): cocos2d-x 3.0 alpha0

2: 依次安装或者解压

3: 添加/扩充环境变量

  用户根目录下创建文件.bash_profile
export ANDROID_NDK_ROOT=/android-ndk-r8e 
export COCO2DX_ROOT=/cocos2d-x-3.0alpha0 
export ANDROID_SDK_ROOT=/adt-bundle-mac-x86_64-20131030/sdk 
export NDK_ROOT=/android-ndk-r8e 
export PATH=$PATH:$ANDROID_NDK_ROOT 

4: 多平台项目创建:

  1): 必要软件: python-2.7.3

  2): 工程路径中不要有汉字,全英文最好

  3): CMD到cocos2dx的根目录

  4): 输入命令行,格式为:

    python create-multi-platform-projects.py -p project_name -k com.your_company -l cpp

      Options:

        -l Language:语言

          -l cpp for a cocos2d-x C++ project

          -l lua for a cocos2d-x + Lua bindings project

          -l javascript for a cocos2d-x + JavaScript bindings project

  5): 成功后再.\projects\下面有创建一个叫做<project_name>的完整项目

5: Android.mk修改,修改为自动扫描Classes文件夹,不用后期频繁修改:
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := cocos2dcpp_shared

LOCAL_MODULE_FILENAME := libcocos2dcpp

# 遍历目录及子目录的函数
define walk
    $(wildcard $(1)) $(foreach e, $(wildcard $(1)/*), $(call walk, $(e)))
endef

# 遍历Classes目录
ALLFILES = $(call walk, $(LOCAL_PATH)/../../Classes)
                   
FILE_LIST := hellocpp/main.cpp
# 从所有文件中提取出所有.cpp文件
FILE_LIST += $(filter %.cpp, $(ALLFILES))

LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes

LOCAL_WHOLE_STATIC_LIBRARIES += cocos2dx_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static
# LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos2dxandroid_static

include $(BUILD_SHARED_LIBRARY)

$(call import-module,cocos2dx)
$(call import-module,cocos2dx/platform/third_party/android/prebuilt/libcurl)
$(call import-module,CocosDenshion/android)
$(call import-module,extensions)
# $(call import-module,external/Box2D)
$(call import-module,cocos2dx/platform/android)
6: 进入控制台,切换到$./proj.android/目录下面: 执行build_native.cmd命令.等待结果
注意事项: 
1.AndroidManifest.xml
中的 package名字必须是两级以上例如"com.company...."
2.cocos2d-x-3.0\projects\***\proj.android\src文件下是空的,没有java代码,要把cocos2d-x-3.0\cocos2dx\platform\android\java\src文件夹下的文件拷贝到cocos2d-x-3.0\projects\***\proj.android\src下。
3.cocos2dx的资源路径下不能创建实体路径可以建立组,因为跨平台安卓只寻找资源路径下的文件,其子路径中的文件找不到
4.
关于黑屏

默认的情况下,程序启动时,会有一个黑屏的时期,原因是,首个activity会加载一些数据,比如初始化列表数据等。
 
去除步骤

1./res/values/styles.xml 在 Theme 中,添加一个 android:windowBackgrounds 属性,设置需要的图片

2.在 AndroidManifest.xml 中设置Theme到首个启动的Activity下。

3.添加 /res/drawable-port/loading.png (若是横屏的启动画面,请放于 /res/drawable-land/loading.png )

4.完成
5.参考代码

  1. <style name="MyTheme.NoTitleBar.CustomBackground" parent="@android:Theme.Black">  
  2.         <item name="android:windowBackground">@drawable/loading</item>  
  3.         <item name="android:windowNoTitle">true</item>  
  4.         <item name="android:windowFullscreen">true</item>  
  5.         <item name="android:windowContentOverlay">@null</item>  
  6.  </style> 


  1. <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">         
  2.           <activity android:label="@string/app_name" android:theme="@style/MyTheme.NoTitleBar.CustomBackground"  android:configchanges="keyboardHidden|navigation|orientation" android:name="com.test.ui.MainActivity" android:screenorientation="portrait">  
  3.           <intent-filter>  
  4.                        <action android:name="android.intent.action.MAIN">  
  5.                             <category android:name="android.intent.category.LAUNCHER">   </category>
  6.                       </action>
  7.          </intent-filter>  
  8.  </activity>  
  9. ...  
  10. ...
  11. </application>  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值