Не удалось собрать проект NDK из последней версии Android Studio (версия 2.1.2, 64-разрядная версия Windows)

Я не могу собрать проект NDK из среды Android Studio, но могу создать его вручную с помощью командной консоли.

Я получаю следующую ошибку после сборки:

Ошибка: не удалось выполнить задачу ':xxxxxx:compileReleaseNdk'.> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command' C:\Users\xxxxx\ AppData\Local\Android\SDK\android-sdk\ndk-bundle\ndk-build.cmd завершен с ненулевым выходным значением 2

Я получил аналогичную ошибку при вызове ndk-build.cmd вручную с помощью консоли из каталога jni, в котором хранится мой проект NDK. Однако я исправил ее, изменив следующее в моем файле Application.mk следующим образом:

NDK_TOOLCHAIN_VERSION := 4,9

так как 4.9 — это цепочка инструментов, доступная при моей установке. Я подозреваю, что в среде Android Studio версия набора инструментов выбирается неправильно, и все же я не знаю, где установить эту опцию в графическом интерфейсе.

В файле build.gradle есть следующий блок NDK:

    ndk{
        moduleName "xxxxxx"
        ldLibs "log"
        cFlags "-std=c++11 -fexceptions"
        stl "gnustl_static"
        abiFilters "arm64-v8a armeabi armeabi-v7a mips mips64 x86 x86_64"
    }

Подскажите, пожалуйста, как решить эту проблему.


person Jim    schedule 12.08.2016    source источник
comment
В чем была настоящая ошибка? Нет такого файла? Какая-то ошибка компилятора? Все, что мы знаем, это то, что вызов ndk-build не удался, чего недостаточно для продолжения.   -  person Dan Albert    schedule 12.08.2016
comment
Единственное сообщение об ошибке, которое я получаю после сборки, выделено жирным шрифтом выше. Вот почему я не знаю, что делать дальше. Спасибо.   -  person Jim    schedule 14.08.2016
comment
Пожалуйста, посмотрите здесь: stackoverflow .com/questions/19477500/   -  person Vaiden    schedule 14.08.2016
comment
Я прошел по ссылке, которую вы предложили Вайдену. В нем обсуждается сборка проекта NDK из командной строки, которая у меня отлично работает. Моя проблема в том, что я не могу создать тот же проект из Android Studio IDE. Я где-то читал, что Android Studio IDE не использует файл Application.mk при создании проектов NDK.   -  person Jim    schedule 15.08.2016


Ответы (1)


Просто из любопытства я переместил каталог своего проекта на рабочий стол и попытался собрать этот проект. Сборка прошла успешно.

Наконец, проблема сузилась до того, что компилятор NDK не смог создать следующий промежуточный объектный файл внутри папки моего проекта:

C:\Users\xxxxx\GitRepos\REVIEWS\xxx\SMART-xxx\xxxx-xxx-androidnative\xxxLibraries\xxxlibrary\build\intermediates\ndk\debug\obj/local/arm64-v8a/objs/natXXXX/ C_\Users\xxxxx\GitRepos\REVIEWS\xxx\SMART-xxxx\xxxx-xxx-androidnative\xxxLibraries\xxxlibrary\src\main\jni\NativeXXXX.od

Причина заключалась в том, что известный путь Windows не может превышать 255 символов. Как вы можете видеть выше, утилита NDK-Build пытается добавить глубокую иерархию папок, например "C_\Users\xxxxx\GitRepos\REVIEWS\xxx\SMART-xxxx\xxxx-xxx-androidnative\xxxLibraries\xxxlibrary\src\ main\jni\", который превышает MAX_PATH.

person Jim    schedule 16.08.2016