Сборка Android-проекта производит сделать ошибку 2

Недавно я приобрел книгу, помогающую мне в разработке C ++ для Android, которая содержала несколько примеров кода. Тем не менее, когда я прихожу, чтобы построить пример кода, я получаю следующую ошибку:

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

Файл make выглядит так, как показано ниже:

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)

Файл Application.mk выглядит следующим образом:

APP_PLATFORM    := android-9
APP_STL         := stlport_static
NDK_TOOLCHAIN_VERSION   := 4.7

Это было скомпилировано с использованием ADT v22.2.1 и Android NDK r9 на Windows 7 Machine.

NDK был установлен в ‘C: \ ndk \ android-ndk-r9 \’.

5

Решение

Android NDK r9 содержит следующие наборы инструментов:

  1. рука-Linux-androideabi-4,6
  2. рука-линукс-androideabi-4,8
  3. рука-линукс-androideabi-clang3.2
  4. рука-линукс-androideabi-clang3.3
  5. LLVM-3,2
  6. LLVM-3,3
  7. Mipsel-Linux-андроид-4,6
  8. Mipsel-линукс-андроид-4,8
  9. Mipsel-линукс-андроид-clang3.2
  10. Mipsel-линукс-андроид-clang3.3
  11. x86-4.6
  12. x86-4.8
  13. x86-clang3.2
  14. x86-clang3.3

Для gcc 4.7 нет цепочки инструментов. Тем не менее, ваш Application.mk содержит строку:

NDK_TOOLCHAIN_VERSION   := 4.7

Что говорит NDK, чтобы искать набор инструментов 4.7. И это не удается.

Таким образом, решение вашей проблемы заключается в изменении NDK_TOOLCHAIN_VERSION переменная к 4.6, 4.8, clang3.2, clang3.3, или просто clang (которая будет использовать самую последнюю версию Clang, доступную в NDK).

8

Другие решения

Проверьте путь вашего проекта, если он содержит пространства а также неанглийские символы.
Я перенес свой проект куда-то без пробелов, перестроил его и работает.

0