Проблемы с созданием приложения cca для Android на Mac

#android #macos #cordova #google-chrome-app #cordova-chrome-app

#Android #macos #кордова #google-chrome-app #cordova-chrome-app

Вопрос:

Недавно я обновил несколько зависимостей на своем Mac, через некоторое время не занимаясь разработкой cca, и теперь команда «cca run android» больше не работает на моей машине.

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

 BUILD FAILED
<my project path>/platforms/android/build.xml:90: Cannot find  /usr/local/tools/ant/build.xml imported from <my project path>/platforms/android/build.xml

Total time: 0 seconds

<my project directory>/platforms/android/cordova/node_modules/q/q.js:126
                throw e;
                 ^
Error code 1 for command: ant with args: debug,-f,<my project directory>/platforms/android/build.xml,-Dsdk.dir=/usr/local
 

Он ищет файл сборки, который не существует. Меня беспокоит раздел, в котором говорится -Dsdk.dir=/usr/local. Очевидно, что он должен смотреть на мой домашний каталог Android, который, похоже, настроен правильно:

 $ echo $ANDROID_HOME
/usr/local/opt/android-sdk
 

И если бы эта переменная была установлена правильно, она нашла бы ее:

ls $ANDROID_HOME/tools/ant/build.xml /usr/local/opt/android-sdk/tools/ant/build.xml

Кто-нибудь сталкивался с этим недавно, используя последние версии cca с Android? Надеюсь, что я допускаю какую-то очевидную ошибку, которую можно легко исправить.

Комментарии:

1. Быстрый тест: экспортирован ли ваш ANDROID_HOME, чтобы его могли видеть другие процессы? Чтобы выполнить быстрый тест, введите «bash» (или любую другую оболочку, которую вы хотите), а затем повторите переменную там.

Ответ №1:

Я получил ответ от разработчиков MobileChromeApps на их github issue tracker. Оказывается, sdk.dir задавался не переменной $ANDROID_HOME, а переменной $PATH, которая соответствует первому исполняемому файлу Android. Исправив мой путь для перемещения $ANDROID_HOME перед чем-либо еще в path, он устранил проблему, и они отправили ошибку для определения приоритета $ANDROID_HOME в будущей сборке.