Выполнение не удалось для задачи generateJsonModelArmDebug - PullRequest
3 голосов
/ 21 мая 2019

Я пытаюсь использовать Android Studio для создания собственного проекта c ++ с использованием версии cmake 3.14.0. Как в документации: https://developer.android.com/studio/projects/add-native-code#use_a_custom_cmake_version. Поэтому я добавляю version "3.14.0" в свой build.gradle и добавляю cmake.dir=C\:\\CMakeWin32 в мои local.properties о vanilla cmake. А потом:

> Task :UnitTests:generateJsonModelArmDebug
> Task :UnitTests:generateJsonModelArmDebug FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':UnitTests:generateJsonModelArmDebug'.
> Illegal char <:> at index 47: C:/j/client/dava.framework/Programs/UnitTests\C:/r15c/sources/android/cpufeatures/cpu-features.c

Если я использую cmake 3.6 по умолчанию в комплекте NDK, все работает. Мое окружение:
Windows - 10
Android Studio - 3.4.1
gradle - попробуйте 4.10.1 и 5.4.1
ndk - попробуйте 15c и 19c

В моем CMakeLists.txt я добавляю зависимость:

    add_library( ${PROJECT_NAME} SHARED ${PLATFORM_ADDED_SRC} ${REMAINING_LIST} )
    include(AndroidNdkModules)
    android_ndk_import_module_cpufeatures()
    target_link_libraries( ${PROJECT_NAME} cpufeatures)

Насколько я понимаю, из сообщения об ошибке указывается полный путь к C:/r15c/sources/android/cpufeatures/cpu-features.c желанию gradle для объединения с путем к текущему проекту C:/j/client/dava.framework/Programs/UnitTests. Я думаю, что проблема с Gradle и как он использует cmake_server для генерации модели кода JSON. Но как это исправить? Заранее спасибо.

Обновление (подробнее):

  1. Если я построю как: C:\j\client\dava.framework\Programs\UnitTests\Platforms\Android>gradlew :UnitTests:generateJsonModelArmDebug --info > log.txt 2>&1
  2. в копии файла журнала с сервера cmake и сохраните его в файле test.json
  3. Откройте test.json в Firefox и посмотрите целевой libcpufeatures.a в разделе source, где указан полный путь к одному исходному файлу.
  4. sourceDirectory остаются от родительского проекта C:/j/client/dava.framework/Programs/UnitTests
  5. поэтому я думаю, что gradle попытается объединить эту ошибку вместе в cmake или в работе gradle с ответом json от cmake. json view of responce from cmake-server

1 Ответ

0 голосов
/ 22 мая 2019

Ошибка была в плагине Google Gradle, поэтому я просто обновил его, и он работает с новым cmake 3.14.Просто обновите свой плагин Gradle:

    dependencies { classpath 'com.android.tools.build:gradle:3.4.1' }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...