编译部分:
安装ndk(版本android-ndk-r9d)
安装Cygwin (版本1.7.17-1)
->测试cygwin是不是已经安装好了
->cygcheck -c cygwin命令,会打印出当前cygwin的版本和运行状态,如果status是ok的话,则cygwin运行正常
cygwin关联ndk
->打开home\Administrator\.bash_profile->文件最后 设置ndk路径(示例 NDK_ROOT=/cygdrive/e/android-ndk-r9d (换行) export NDK_ROOT)
编译android项目:
->打开Cygwin下的Cygwin.bat
->进入cocos2dx工程目录下的proj.android目录(示例cd /cygdrive/e/GreatGames1/boardGames/single/src/client/proj.android)
->给资源目录设置权限访问权限(示例chmod 777 -R ../Resources/)
->运行sh build_native.sh
->出现安装so文件成功时候说明编译成功(示例Install : libcocos2dcpp.so => libs/armeabi/libcocos2dcpp.so)
->如果你的工程新添加了类文件,编译会找不到这个新类中的方法产生错误,这是因为在安卓文件中没有这个类,这个类只是添加到cocos2dx中,所以编译的时候查找不到,解决办法是:找到proj.android\jni这个目录下的这个文件Android.mk,然后打开,里面大概代码如下:
include $(CLEAR_VARS)
LOCAL_MODULE := cocos2dcpp_shared
LOCAL_MODULE_FILENAME := libcocos2dcpp
LOCAL_SRC_FILES := hellocpp/main.cpp \
myUtilsConfig.cpp \
Java_tools_CommonFunc.cpp \
../../alert.cpp \
../../AppDelegate.cpp \
../../b2Sprite.cpp \
../../backgroundLayer.cpp \
../../basicTimer.cpp \
../../bezierTest.cpp \
../../box2dHandler.cpp \
../../checkinLayer.cpp \
../../CommonFunc.cpp \
../../exchangeDict.cpp \
../../exchangeInfo.cpp \
../../fishDict.cpp \
../../fishRoute.cpp \
../../formationDict.cpp \
../../gameScene.cpp \
../../GLES-Render.cpp \
../../levelDict.cpp \
../../levelUpgradeLayer.cpp \
../../menuLayer.cpp \
../../menuScene.cpp \
../../monitoringCenter.cpp \
../../myGame.cpp \
../../oneoffTimer.cpp \
../../spriteLayer.cpp \
../../storeScene.cpp \
../../taskDict.cpp \
../../timerThread.cpp \
../../tipsDict.cpp \
../../touchLayer.cpp \
../../rewardDict.cpp 上面这部分是cpp文件新加的 一般编译出现未定义的错误一般都是这里面少了对应的cpp文件 ../../这个是上2层目录 因为我的cpp文件在上面2层,这个是看情况定的 后面(空格)\意思是查找下一行,所以这段代码下面记得要空一行 不然会出错
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../.. $(LOCAL_PATH)/../../bin 这句意思是查找所有.h文件,一句话就够了 不用添加.h文件
LOCAL_STATIC_LIBRARIES := NewbeeUtils
LOCAL_WHOLE_STATIC_LIBRARIES += cocos2dx_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static
LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static
LOCAL_WHOLE_STATIC_LIBRARIES += chipmunk_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_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,external/chipmunk)
运行部分:
安装Java JDK:
官网下载或者推荐使用 jdk-6u5-windows-i586-p.exe
安装Eclipse::
推荐使用 eclipse3.6.2-win32.zip
设置使用空格(Space)替代制表符(TAB) Eclipse设置的具体方法为:
菜单 Window->Preferences->在左边选Java->code style->Formatter->右边点“new”按钮,输入文件名-->点ok-->选“缩进(Indentation)”选项卡->在“常规设置(General Settings)”里的“跳格策略(Tab policy)” 下拉列表选“仅空格(Spaces only)” 。依次点-->OK-->Apply-->OK
【环境】Eclipse3.62 ADT.21.0.0
安装ADT:
把已有ADT导入Eclipse
菜单项 Help -> Install new software -> Add(界面右上角) -> 点击Local...按钮,选择ADT所在路径 -> select All -> Next ->勾选同意协议 -> next -> 提示安装软件 -> 提示重启
安装android SDK:
把已有SDK导入Eclipse
菜单项 Window -> Preferences -> 左侧树状选项Android -> 在右侧的SDK Location中输入sdk的路径 -> Apply -> ok
模拟器:
BlueStacks安装完成(如果在devices窗口出现模拟器不需要后面的步骤)->点击eclipse的devices窗口右边的下拉按键->点击 reset adb
导入android项目:
File -> Import -> General -> Existing Projects into Workspace -> Next
Select root directory中输入项目路径 -> Finish
在模拟器中运行项目:
左侧Package Explorer,右键选择项目 -> Run as ->Android Application
如果运行成功便会在安卓文件(proj.android\bin)目录下面生成一个APK文件,然后把这个文件安到手机上就可以用来测试了。