Ошибка при попытке использовать сборку Cordova в проекте Android со ссылками на подпроекты.

Я только что обновил свой проект Apache Cordova до Cordova 3.2 и одновременно изменил все на проект Cordova CLI. Все работало нормально, пока в своем приложении для Android я не добавил ссылку на другой сторонний проект. Приложение для Android по-прежнему отлично работает с этим подпроектом, однако теперь, когда я пытаюсь запустить «сборку Cordova» из командной строки, я получаю следующую ошибку:

Preparing android project
Compiling app on platform "android" via command "/<path-to-my-cordova-project>/platforms/android/cordova/build" 
[Error: An error occurred while building the android project.Error executing "ant clean -f /<path-to-my-cordova-project>/platforms/android/build.xml": 
BUILD FAILED
/Applications/adt-bundle-mac-x86_64/sdk/tools/ant/build.xml:471: Invalid file: /<path-to-my-android-sub-project>/build.xml

В подпроекте Android используется maven, а не ant, поэтому файл build.xml отсутствует. Но Кордова по какой-то причине хочет, чтобы он существовал... Я пытался поместить фиктивный файл build.xml в подпроект, но Кордове это тоже не нравится.

Я знаю, что обычно проекты Cordova не имеют подпроектов, поскольку весь код приложения обычно представляет собой просто html/javascript/css. Итак, является ли концепция подпроекта чем-то, что Cordova CLI еще не поддерживает? Есть ли способ заставить CLI просто игнорировать подпроект?


person Troy    schedule 13.12.2013    source источник


Ответы (1)


Вы можете использовать команду android update project для создания файла build.xml, который муравей Cordova будет подобно. Если в подпроекте много зависимостей, которые разрешает maven, вы можете получить многошаговую сборку, в которой сначала разрешаете зависимости подпроекта, а затем выполняете сборку Cordova.

Более подробная информация о подпроекте поможет.

person JohnnyLambada    schedule 21.05.2014
comment
Спасибо! Это избавило меня от вышеуказанной ошибки, и теперь похоже, что у меня просто есть проблемы с файлами jar и/или build-path. По какой-то причине основной проект не может найти классы, определенные в подпроекте (github.com/jfeinstein10/ SlidingMenu) при построении из Ant... - person Troy; 22.05.2014
comment
@Troy, вам, вероятно, просто нужно сообщить основному проекту, что SlidingMenu — это библиотечный проект. Вы делаете это в файле project.properties основного проекта со строкой, которая выглядит примерно так: android.library.reference.1=path/to/SlidingMenu/library - person JohnnyLambada; 23.05.2014