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.参考代码
- <style name="MyTheme.NoTitleBar.CustomBackground" parent="@android:Theme.Black">
- <item name="android:windowBackground">@drawable/loading</item>
- <item name="android:windowNoTitle">true</item>
- <item name="android:windowFullscreen">true</item>
- <item name="android:windowContentOverlay">@null</item>
- </style>
- <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">
- <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">
- <intent-filter>
- <action android:name="android.intent.action.MAIN">
- <category android:name="android.intent.category.LAUNCHER"> </category>
- </action>
- </intent-filter>
- </activity>
- ...
- ...
- </application>