2013-10-20 8 views
5

Ich habe vor kurzem ein Buch zur Unterstützung bei meiner Entwicklung von C++ für Android, die einige Codebeispiele enthalten gekauft. Allerdings, wenn ich gekommen, um einige der Beispielcode zu erstellen, erhalte ich folgende Fehlermeldung:Gebäude Android-Projekt produziert machen Fehler 2

C:\ndk\android-ndk-r9\ndk-build.cmd all 
"Compile++ : Chapter10 <= Chapter10.cpp 
process_begin: CreateProcess(NULL, C:/ndk/android-ndk-r9/toolchains/arm-linux-androideabi-4.7/prebuilt/windows/bin/arm-linux-androideabi-g++ -MMD -MP -MF ./obj/local/armeabi/objs/Chapter10/Chapter10.o.d -fno-exceptions -fno-rtti -Ijni -IC:/ndk/android-ndk-r9/sources/android/native_app_glue -IC:/ndk/android-ndk-r9/sources/cxx-stl/stlport/stlport -IC:/ndk/android-ndk-r9/sources/cxx-stl//gabi++/include -Ijni -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -frtti -c jni/Chapter10.cpp -o ./obj/local/armeabi/objs/Chapter10/Chapter10.o, ...) failed. 

make (e=2): The system cannot find the file specified. 

make: *** [obj/local/armeabi/objs/Chapter10/Chapter10.o] Error 2 

Das Make-Datei, wie unten gezeigt wird:

LOCAL_PATH:= $(call my-dir) 

include $(CLEAR_VARS) 

LOCAL_ARM_MODE   := arm 
LOCAL_C_INCLUDES  := $(LOCAL_PATH) 
LOCAL_MODULE   := Chapter10 
LOCAL_SRC_FILES   := Chapter10.cpp \ 
          (Other cpp Files . . .) 
LOCAL_LDLIBS   := -llog -landroid -lEGL -lGLESv2 -lOpenSLES 
LOCAL_STATIC_LIBRARIES := android_native_app_glue 

include $(BUILD_SHARED_LIBRARY) 

$(call import-module,android/native_app_glue) 

Die Application.mk Datei ist wie folgt:

Dies wurde mit ADT v22.2.1 und Android NDK r9 auf einer Windows 7-Maschine kompiliert.

Das NDK wurde auf "C: \ ndk \ android-ndk-r9 \" installiert.

+1

Welchen Wert hat Ihre Umgebungsvariable '' NDK_HOME''? –

+0

Tut mir leid, Sergey, aber ich habe Probleme, den Speicherort der Umgebungsvariablen NDK_HOME zu finden. Ich habe den NDK-Standort über Voreinstellungen -> Android -> NDK -> NDK-Standort auf "C: \ ndk \ android-ndk-r9 \" eingerichtet. Dies scheint während des Builds gefunden zu werden.Ich habe vergessen, dass ich Windows 7 (Hauptpost bearbeiten) ausführen. –

+1

Und deine '' Application.mk'', bitte. –

Antwort

8

Android NDK r9 enthält folgende Werkzeugketten:

  1. Arm-linux-androideabi-4.6
  2. Arm-linux-androideabi-4.8
  3. Arm-linux-androideabi-clang3.2
  4. Arm-Linux-androideabi-clang3.3
  5. llvm-3,2
  6. llvm-3.3
  7. mipsel-Linux -Android-4.6
  8. mipsel-linux-Android-4.8
  9. mipsel-linux-android-clang3.2
  10. mipsel-linux-android-clang3.3
  11. x86-4.6
  12. x86-4.8
  13. x86-clang3.2
  14. x86-clang3.3

Es gibt keine Toolchain für gcc 4.7. jedoch Ihre Application.mk enthält die Zeile:

NDK_TOOLCHAIN_VERSION := 4.7 

, die das NDK sagt für die 4.7-Toolchain zu suchen. Und es scheitert.

die Lösung für Ihr Problem also verändert den NDK_TOOLCHAIN_VERSION Variable 4.6, 4.8, clang3.2, clang3.3, oder einfach nur clang (die die neueste Version von Clang im NDK verfügbar verwenden).

+2

Lektion gelernt. Danke für Ihre Hilfe in der Sache. –

0

Überprüfen Sie Ihren Projektpfad, wenn Leerzeichen und nicht englische Zeichen enthält.
Ich habe mein Projekt irgendwo ohne Leerzeichen verschoben, baue es neu und arbeite.

+1

Dank @Johnny, aber dieses Problem wurde mit dem von Sergey's Lösung beschriebenen Prozess klar gelöst. –