[cocos2dx]Android编译的一些注意事项

来源:互联网 发布:常见办公软件 编辑:程序博客网 时间:2024/06/08 07:46

申明:
1、此内容都是平时搜集和总结的一些经验,非我人之力所及,感谢互联网大神们的慷慨分享,向你们致敬。
2、以下内容和及方法适用于cocos2dx 2.1.4 至 cocos2dx 3.6 final 版本,如有疑问,欢迎留言大家共同探讨。

一、加载某些大图片时会出现“空”图片的情况:
需要在AppActivity.java中修改
即在public class AppActivity extends Cocos2dxActivity {} 中添加如下:

public class AppActivity extends Cocos2dxActivity{    public Cocos2dxGLSurfaceView onCreateView()     {          Cocos2dxGLSurfaceView glSurfaceView = new Cocos2dxGLSurfaceView(this);        glSurfaceView.setEGLConfigChooser(8 , 8, 8, 8, 16, 8);        return glSurfaceView;      }}

二、NDK配置:
关于NDK_MODULE_PATH:
需要注意在Win32的Eclipse中的中的路径是以符号间隔”;”
在MAC中是以”:”间隔
如果出现NDK编译时,无法识别C++某些语句时,请尝试在Application.mk中设置NDK_TOOLCHAIN_VERSION的版本
一般在任意行添加 NDK_TOOLCHAIN_VERSION = 4.7 或者 4.8 设置其编译方式

三、关于assets文件夹
一般编译成功却出现黑屏或者闪退的现象都是由assets文件夹中含有中文或空格或者是直接缺少文件造成的。
打包之前确保res中的所有文件都复制到了assets文件夹内部,并且都是以英文命名。

四、最重要的Android.mk文件及其自动遍历的方法
先定义自动遍历目录及子目录的函数:

# 遍历目录及子目录的函数define walk    $(wildcard $(1)) $(foreach e, $(wildcard $(1)/*), $(call walk, $(e)))   endef# 遍历Classes目录ALLFILES := $(call walk, $(LOCAL_PATH)/../../Classes)FILE_LIST := hellolua/main.cpp# 从所有文件中提取出所有.cpp文件 和 .c文件FILE_LIST += $(filter %.cpp, $(ALLFILES))FILE_LIST += $(filter %.c, $(ALLFILES))LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%) CLASSFILES := $(call walk, $(LOCAL_PATH)/../../Classes)# 自动遍历include附加文件LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes# 在Linux的系统中可以用以下方式自动遍历LOCAL_C_INCLUDES += $(shell ls -FR $(LOCAL_C_INCLUDES) | grep $(LOCAL_PATH)/$ | sed "s/:/ /g" )# 注意:在win32系统中↑上面的方法会出现无法识别ls造成遍历失败,由于目前没有找到好的自动遍历方法,为了省事,可以直接使用之前自动遍历所有class目录的方式,如下:# LOCAL_C_INCLUDES += $(shell ls -FR $(LOCAL_C_INCLUDES) | grep $(LOCAL_PATH)/$ | sed "s/:/ /g" )LOCAL_C_INCLUDES += $(ALLFILES)

如遇其他问题,欢迎各位读者一起探讨分享。
再次向解决方案提供者致敬。

0 0