Android cocos2d-x-2.1.4:错误:格式不是字符串文字,也没有格式参数[-Werror=格式安全性]

Android cocos2d-x-2.1.4:错误:格式不是字符串文字,也没有格式参数[-Werror=格式安全性],android,cocos2d-iphone,android-ndk,cocos2d-x,Android,Cocos2d Iphone,Android Ndk,Cocos2d X,我正在cocos2d-x-2.1.4上开发一个游戏,但是,当我尝试在Android上构建它时,它失败了,错误是:格式化不是字符串文本,并且在文件CCCommon.cpp上没有格式化参数[-Werror=format security] 然而,当我检查进攻线时,它是完全好的。当我使用Visual Studio和XCode为WIN32和iOS构建文件时,该文件的构建也很好,而且始终都很好 错误日志如下所示: C:/Development/External/cocos2d-2.1rc0-x-2.1.3

我正在cocos2d-x-2.1.4上开发一个游戏,但是,当我尝试在Android上构建它时,它失败了,错误是:格式化不是字符串文本,并且在文件CCCommon.cpp上没有格式化参数[-Werror=format security]

然而,当我检查进攻线时,它是完全好的。当我使用Visual Studio和XCode为WIN32和iOS构建文件时,该文件的构建也很好,而且始终都很好

错误日志如下所示:

C:/Development/External/cocos2d-2.1rc0-x-2.1.3/projects/Game_C2DX213/proj.android/../../..//cocos2dx/platform/android/CCCommon.cpp: In function 'void cocos2d::CCLog(char const*, ...)':
/cygdrive/c/eclipse/android-ndk-r9/build/core/build-binary.mk:348: recipe for target `obj/local/armeabi/objs/cocos2dx_static/platform/android/CCCommon.o' failed
C:/Development/External/cocos2d-2.1rc0-x-2.1.3/projects/Game_C2DX213/proj.android/../../..//cocos2dx/platform/android/CCCommon.cpp:44:72: error: format not a string literal and no format arguments [-Werror=format-security]
C:/Development/External/cocos2d-2.1rc0-x-2.1.3/projects/Game_C2DX213/proj.android/../../..//cocos2dx/platform/android/CCCommon.cpp: In function 'void cocos2d::CCLuaLog(char const*)':
make: Leaving directory `/cygdrive/c/Development/External/cocos2d-2.1rc0-x-2.1.3/projects/Game_C2DX213/proj.android'
C:/Development/External/cocos2d-2.1rc0-x-2.1.3/projects/Game_C2DX213/proj.android/../../..//cocos2dx/platform/android/CCCommon.cpp:54:77: error: format not a string literal and no format arguments [-Werror=format-security]
cc1plus.exe: some warnings being treated as errors

请注意,cocos2d-x-2.1.4可能与ndk-r9不兼容,您是否试用过r8e

您还可以将其放在Application.mk中,以禁用将这些警告视为错误:
APP_CFLAGS+=-Wno error=格式安全性

此线程中的同一问题有更多解决方案:


你必须挑战你的Android.mk
本地\u禁用\u格式\u字符串\u检查:=true

“这是由android-ndk-r9引起的,您可以从android-ndk-r9/build/core/default build commands.mk中删除-Werror=FORMAT security”以下内容帮助了我,thanks@igrek-如果我理解正确,你的答案是不同的,与更改Android的文件而不是开发人员的项目文件有关。@kilaka-是的,所以我已经修补了Android ndk本身。更改项目文件比更改ndk更好,但对我来说不起作用:(您不应该修补NDK。android make文件中有本地禁用格式字符串检查标志来控制NDK。APP\u CFLAGS+=-Wno error=格式安全无效,本地禁用格式字符串检查:=真帮助。如果我使用android Studio,您会怎么做?编辑android.mk似乎不起作用。@harikris imho您正在编译的是什么它通过gradle和“新构建系统”创建临时Android.mk并使用它而不是您的文件。您必须阅读文档并找到一个键,为gragle提供自定义Android.mk的路径,否则您可能会节省大量时间,并像往常一样使用ndk构建。