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

申明:
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)

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值