当前位置:编程学习 > wap >>

libpomelo+cocos2d-x 开发环境搭建(windows平台开发android程序)

与其他文件夹整齐排列。目前只有这里的libpomelo是可以不修改在ndk下编译过的。但是里面bug还是挺多的。

修改里面的 deps/jansson/jansson_config.h.in => deps/jansson/jansson_config.h

这个h里面很好配置,我就不写了。

src/network.c里面有几个地方需要改

pc__on_tcp_connect函数内:


把if(status == -1){}  内的log代码全注释掉,因为req已经被free了,这里又使用。


pc__on_notify函数内:


把if(status == -1){}  内的log代码全注释掉,原因同上。

然后如果PomeloClient.connect("127.0.0.1",port)  (这里是伪代码) 如果地址写的是127.0.0.1,我发现在我的android手机上每次都会crash。

查了下死在libuv里的事件循环。由于一般不会connect到127.0.0.1,我就没有深究了。

crash的定位方法写在后面。

 


2.修改你的cygwin目录下的cygwin.bat,为以后开发提供path支持。

我的是:


[plain]
@echo off 
 
d: 
chdir d:\cygwin\bin 
 
set DRIVER=/cygdrive/d 
 
set ANDROID_SDK=%DRIVER%/software/android-sdk-windows 
set VIM_HOME=%DRIVER%/kin-tools/gvim/vim/vim73 
set ANT_HOME=%DRIVER%/ws_eclipse/ant/apache-ant-1.9.0 
set NDK_ROOT=%DRIVER%/software/android-ndk-r8d-windows 
set NDK_TOOLCHAINS_0=%NDK_ROOT%/toolchains/arm-linux-androideabi-4.7/prebuilt/windows/arm-linux-androideabi/bin 
set NDK_TOOLCHAINS_1=%NDK_ROOT%/toolchains/arm-linux-androideabi-4.7/prebuilt/windows/bin 
set NDK_TOOLCHAINS=%NDK_TOOLCHAINS_0%;%NDK_TOOLCHAINS_1%; 
 
set extpath=%ANDROID_HOME%/tools;%ANT_HOME%/bin;%ANDROID_SDK%/platform-tools;%ANDROID_SDK%/tools;%VIM_HOME% 
set extpath=%NDK_TOOLCHAINS%;%extpath% 
 
set path=%extpath%;%path% 
 
set cc_root=%DRIVER%/software/cocos2d-2.1rc0-x-2.1.2/cocos2d-2.1rc0-x-2.1.2 
set cc_pomelo_android=%cc_root%/cocos2dx/platform/third_party/android/prebuilt 
set ws_proj=%cc_root%/projects/PomeloClientDemo/proj.android 
set ws_proj_so=%ws_proj%/obj/local/armeabi/libcocos2dcpp.so 
 
set addr2line=%NDK_TOOLCHAINS_1%/arm-linux-androideabi-addr2line 
set objdump=%NDK_TOOLCHAINS_1%/arm-linux-androideabi-objdump 
 
bash --login -i 

@echo off

d:
chdir d:\cygwin\bin

set DRIVER=/cygdrive/d

set ANDROID_SDK=%DRIVER%/software/android-sdk-windows
set VIM_HOME=%DRIVER%/kin-tools/gvim/vim/vim73
set ANT_HOME=%DRIVER%/ws_eclipse/ant/apache-ant-1.9.0
set NDK_ROOT=%DRIVER%/software/android-ndk-r8d-windows
set NDK_TOOLCHAINS_0=%NDK_ROOT%/toolchains/arm-linux-androideabi-4.7/prebuilt/windows/arm-linux-androideabi/bin
set NDK_TOOLCHAINS_1=%NDK_ROOT%/toolchains/arm-linux-androideabi-4.7/prebuilt/windows/bin
set NDK_TOOLCHAINS=%NDK_TOOLCHAINS_0%;%NDK_TOOLCHAINS_1%;

set extpath=%ANDROID_HOME%/tools;%ANT_HOME%/bin;%ANDROID_SDK%/platform-tools;%ANDROID_SDK%/tools;%VIM_HOME%
set extpath=%NDK_TOOLCHAINS%;%extpath%

set path=%extpath%;%path%

set cc_root=%DRIVER%/software/cocos2d-2.1rc0-x-2.1.2/cocos2d-2.1rc0-x-2.1.2
set cc_pomelo_android=%cc_root%/cocos2dx/platform/third_party/android/prebuilt
set ws_proj=%cc_root%/projects/PomeloClientDemo/proj.android
set ws_proj_so=%ws_proj%/obj/local/armeabi/libcocos2dcpp.so

set addr2line=%NDK_TOOLCHAINS_1%/arm-linux-androideabi-addr2line
set objdump=%NDK_TOOLCHAINS_1%/arm-linux-androideabi-objdump

bash --login -i

 

3.  在cygwin的shell里
cd $ws_proj;

执行编译:

./build_native.sh

运气好的话,so就编译成功了。

运气不好的话,可能是你的android项目的版本太低,至少要是android-2.3.3。否则会有线程锁相关的类没有被定义,barrier什么的那个。

 


4.so编译成功后,就生成apk测一下吧

cd $ws_proj;

ant debug install;  安装到默认的android设备。

 


5.运行前打开logcat

adb  logcat -c && adb logcat

 


6.运行你的程序吧

如果so里crash了。 可以使用  addr2line 或者 objjump。

本来想写一下的,网上教程已经很多了,还是算了。

 

 

补充:移动开发 , 其他 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,