cocos2d-x创建android项目后NDK编译警告被当作错误的处理方法

问题为编译cocos2d-x创建的android项目时,原生代码部分编译脚本build_native.sh触发的NDK编译警告被当作错误处理,项目实际编译生成成功了但是Eclipse不能运行!

开发环境:

Mac OSX ML 10.8.3

Android Developer Tools Build: v21.1.0-569685 (developer.android.com下载的整合ADT SDK的Eclipse)

android-ndk-r8e 64bit

cocos2d-2.1rc0-x-2.1.2-hotfix


通过cocos2d-x自带的create-android-project.sh脚本生成项目后Eclipse使用导入已存在项目(不拷贝到工作目录)后编译,发现自动生成的Hello World项目模板并未添加Native支持,于是右键项目Android Tools-》添加原生支持,之后项目加入了CDT部分内容,然后按照之前导入过的TestCpp示例项目,设置C/C++ Build参数,这里还遇到一个小问题,就是示例项目写的是bash ${ProjDirPath}/build_native.sh这样,而如果我在新建的项目中照抄这个命令行的话,会出现bash命令前被自动加入了NDK目录,然后导致找不到bash执行失败,我的解决方法是直接写入绝对路径/bin/bash!再有就是如果提示NDK_ROOT未定义的话,而又不想修改~/.bash_profile,那么可以在C/C++ Build->Enviroment中加入NDK_ROOT环境变量定义解决。

都设置好后,NDK成功开始编译,然后就会出现

android-ndk-r8e/build/core/add-application.mk:128: Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml

这样的提示,并被作为Errors列在了Eclipse的错误列表里,最终导致虽然成功生成了libgame.so但项目却不能运行!解决方法是在Eclipse偏好设置-> C/C++ -> Build -> Settings的Error Parsers的CDT GNU C/C++ Error Parser中加入一条新的Pattern并作为警告处理:

Severity: Warning
Pattern: (.*?):(\d+): Android NDK: WARNING:(.*)
File: $1
Line: $2
Description: $3

并且一定要注意新加入的这条要Move Up到一定的高度,从而提高优先级才可以,修改后重新编译项目Warning被正确的当作Warning处理且不会影响项目运行了。

参考文章:

博主友情提示:

如您在评论中需要提及如QQ号、电子邮件地址或其他隐私敏感信息,欢迎使用>>博主专用加密工具v3<<处理后发布,原文只有博主可以看到。