2013-08-23 8 views
11

Pracuję nad grą na cocos2d-x-2.1.4, jednak kiedy próbuję do zbudowania go na systemie Android, nie powiodło się z błędem: format nie literał łańcuchowy i brak argumentów formatujących [-Werror = format-security] w pliku CCCommon.cppcocos2d-x-2.1.4: błąd: formatowanie nie literału łańcuchowego i brak argumentów formatujących [-Werror = format-security]

Jednak kiedy sprawdzam linię ofensywną, całkowicie w porządku. Plik również budować w porządku i zawsze było dobrze, gdy buduję dla Win32 i iOS z Visual Studio i XCode ..

Dziennik błędów jest następujący:

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 

Odpowiedz

22

Zauważ, że cocos2d-x-2.1.4 może nie być kompatybilny z ndk-r9, czy zamiast tego wypróbowałeś r8e?

Można również umieścić to w swoim Application.mk wyłączyć traktując te ostrzeżenia jako błędy: APP_CFLAGS + = -Wno-Error = Format-bezpieczeństwa

Jest więcej dla rozwiązania tego samego problemu w tym wątku:

http://www.cocos2d-x.org/boards/6/topics/32437?r=33260#message-33260

reference: http://www.cocos2d-x.org/boards/6/topics/33525?r=33579

+0

gdzie znajduje się plik Application.mk? Czy chodziło Ci o plik Android.mk w katalogu $ COCOS2DX_HOME/cocos2dx/Android.mk? Próbowałem umieścić wiersz "APP_CFLAGS + = -Wno-error = format-security" jako pierwszy wiersz w tym pliku, ale błąd nadal występuje – igrek

+3

"Jest to spowodowane przez android-ndk-r9, możesz usunąć -Werror = format-security z android-ndk-r9/build/core/default-build-commands.mk "Pomogły mi poniższe elementy, dzięki – igrek

+1

@igrek - Jeśli dobrze rozumiem, twoja odpowiedź jest inna i dotyczy zmiany plików Androida, a nie plików projektów dewelopera. –

11

trzeba defice w was Android.mk następujące LOCAL_DISABLE_FORMAT_STRING_CHECKS: = true

+0

Jeśli korzystam z Android Studio, jak byś to zrobił? Edytowanie pliku Android.mk nie działa. –

+0

@harikris imho kompilujesz go przez gradle i "new build" system "tworzy tymczasowy plik Android.mk i używa go zamiast Twojego pliku.) Musisz przeczytać dokumentację i znaleźć klucz do dostarczenia gragle'a ze ścieżką do niestandardowego android.mk Możesz zaoszczędzić dużo czasu i jak zwykle korzystać z ndk-build . –

Powiązane problemy