Ionic-framework: Невозможно добавить платформу Android с момента обновления Android SDK Tools 25.3.0

Созданный на 1 мар. 2017  ·  45Комментарии  ·  Источник: ionic-team/ionic-framework

Ионная версия:
[X] 2.1

Я отправляю ...
[X] отчет об ошибке

Текущее поведение:
Когда я добавляю платформу Android, у меня возникает следующая ошибка:
Ошибка: не удалось найти оболочку gradle в Android SDK. Возможно, потребуется обновить Android SDK.

Ожидаемое поведение:
Нет ошибки

Действия по воспроизведению:
$ ionic platform добавить android

Другая информация:
Похоже, это связано с удалением шаблонов проектов в Android SDK Tools в последней версии: http://tools.android.com/recent/androidsdktoolsrevision2530feb2017

Устаревшие / устаревшие инструменты были удалены: [...] шаблоны проектов и действий

Самый полезный комментарий

Вопрос в службу поддержки? Это правда? Новый пользователь, загружающий Ionic2 и Android SDK, потерпит неудачу при создании сборки Android сейчас из-за того, что скрипты сборки Ionic2 не обрабатывают последнюю версию SDK.

Я могу представить себе, что многие проекты разработки теряют много часов из-за этого изменения. Нам потребовалось около двух часов, чтобы разобраться, что происходит, и довольно запутанный процесс перехода на предыдущий SDK (поскольку это невозможно сделать в Android Studio). Во всяком случае, сейчас у вас должно быть большое предупреждение на вашей первой странице.

Все 45 Комментарий

Удивительно, только что здесь было выполнено обновление, которое потребовало некоторых новых функций в Android SDK, и после обновления в инструментах он остановил все здесь с той же проблемой, что описана выше. Интересно то, что android.bat также устарел в этом обновлении, поэтому вы даже не можете использовать его для установки определенного SDK.

Вы можете установить его вручную. См. Https://forum.ionicframework.com/t/error-could-not-find-gradle-wrapper-within-android-sdk/79527/5

Кажется, что 25.3 несовместим с Android Studio и Ionic, например, при обновлении также нарушается ссылка «Запуск автономного диспетчера SDK» в диспетчере SDK в AS. Лучше всего удалить «Android SDK Tools» в диспетчере SDK в Android Studio, загрузить файл tools _ *. Zip с https://developer.android.com/studio/index.html и извлечь его в SDK Android. папка.

Привет! Благодарим за обращение к нам! Поскольку это больше похоже на вопрос службы поддержки, я настоятельно рекомендую вам задать этот вопрос на нашем форуме или на нашем канале Slack . Спасибо за использование Ionic!

Вопрос в службу поддержки? Это правда? Новый пользователь, загружающий Ionic2 и Android SDK, потерпит неудачу при создании сборки Android сейчас из-за того, что скрипты сборки Ionic2 не обрабатывают последнюю версию SDK.

Я могу представить себе, что многие проекты разработки теряют много часов из-за этого изменения. Нам потребовалось около двух часов, чтобы разобраться, что происходит, и довольно запутанный процесс перехода на предыдущий SDK (поскольку это невозможно сделать в Android Studio). Во всяком случае, сейчас у вас должно быть большое предупреждение на вашей первой странице.

^^ это был бы я. 😒

Кстати, чтобы прояснить, как это произошло в нашей команде, мы внезапно получили ошибку, из-за которой проект Android не мог быть построен из-за того, что мы не принимали новые лицензионные соглашения. Когда мы затем открыли Android Studio, чтобы принять это лицензионное соглашение, это в основном означало загрузку последней версии SDK. Следовательно, поскольку скрипты сборки Ionic2 были несовместимы с этим SDK, мы оказались в затруднительном положении.

Кстати, спасибо за то, что предложили исправить, понизив SDK. Как кто-то упомянул в сообщении на форуме, это в основном означает загрузку любого из них:

https://dl.google.com/android/repository/tools_r25.2.5-macosx.zip
https://dl.google.com/android/repository/tools_r25.2.5-windows.zip

В зависимости от системы (наверное, есть и Linux?). Сначала вам нужно удалить все инструменты, найти папку инструментов Android внутри своей пользовательской папки (которая теперь должна быть пустой) и вручную скопировать в нее файлы. Но я предполагаю, что другим способом было бы просто указать путь к вашим загруженным и извлеченным инструментам, возможно, вместо этого? В любом случае мне также пришлось запустить файл android.bat, чтобы он загрузил и установил некоторые дополнительные вещи, прежде чем мой проект действительно скомпилировался.

Спасибо за помощь @ 64jcl.

Привет, у меня такая же проблема на macOS .. Я установил инструменты Android SDK 25.3.1

Я не уверен, что и когда команда Ionic исправит это.
Но пока что вы можете вручную понизить версию Android SDK Tools в качестве временного решения: https://forum.ionicframework.com/t/error-could-not-find-gradle-wrapper-within-android-sdk/79527/5

У меня точно такая же проблема. Только я получаю свою ошибку, когда пытаюсь сделать какую-либо сборку Android. т.е. ionic build android или ionic run android ...
ОС: Linux Mint
Ионная версия: 2.2.1
Версия Кордовы: 6.5.0
Инструменты SDK 25.3.1

Я получаю следующую ошибку:
Error: Could not find gradle wrapper within Android SDK. Might need to update your Android SDK. Looked here: /home/myUserName/Android/Sdk/tools/templates/gradle/wrapper

Путь / home / myUserName / Android / Sdk / tools / " существует в моей папке SDK для Android, но часть файловой структуры / templates / gradle / wrapper НЕ существует для SDK Tools 25.3.1

Также возникла та же проблема, что и выше. Очень удивлен, что команда закрыла этот вопрос. Как уже говорили другие, похоже, что требуется немедленное исправление, потому что новые пользователи не будут знать, чтобы вернуть свои только что загруженные инструменты sdk.

Я тоже .. Это НЕ вопрос поддержки. Заявленные инструкции и пакеты ПО не работают!

Я получаю ту же ошибку, когда пытаюсь выполнить сборку Cordova любого типа ... Я думаю, что эту проблему, возможно, нужно решить с помощью Cordova вместо Ionic ... Я только что посмотрел на трекер проблем Cordova, и похоже, что другие люди возникли проблемы с добавлением подключаемых модулей из-за изменения пути к файлу в SDK Tools 25.3.1. Вот где похоже, что команда Cordova работает над ее исправлением.

@ jgw96 Не совсем уверен, что закрыть это как вопрос поддержки - лучший

Как бы то ни было, попытка "Hello world" из руководства приведет к тому, что пользователь сразу столкнется с этой проблемой, если будет следовать инструкциям в письме.

Даже если будет решено, что это проблема апстрима, «Начало работы» должно работать из коробки, как описано, так что это нужно будет обновить / объяснить imho.

Хотя, честно говоря, наличие таких вещей, как «скачать X, а затем вручную заменить компонент Y на устаревшую версию в местоположении Z» в примерах для начинающих может отпугнуть многих людей, и это справедливо, imho.

Тем не менее, ситуация лучше, чем поиск решения в Google, тем более, что не все, кто пробует Ionic, хорошо знают базовую цепочку инструментов.

Не пытаясь никого обидеть, ваша команда проделала и отлично работает с Ionic, просто я хотел бы отметить, что эта проблема намного серьезнее, чем может показаться на первый взгляд.

Да, я полностью согласен. Прошу прощения, если в своем ответе я натолкнулся на "резкость", что называть это "вопросом поддержки" было неправильно. Команда проделала отличную работу, и, естественно, у них не было возможности даже предотвратить это изменение, которое внезапно сорвало многие проекты. Но все же я считаю, что это серьезная проблема, от которой я ожидал лучшего решения, чем просто ее отклонение.

И я предполагаю, что это даже не Ionic, который терпит неудачу, а какая-то часть процесса сборки Cordova, поэтому она может быть вообще не в их руках. Если у команды Ionic есть продолжение по этому поводу в каком-то сообщении на форуме, которое они сделали, рассмотрите возможность размещения ссылки на ветку, описывающую проблему и способы ее решения, поскольку я вижу, что эта «закрытая» проблема все еще посещается многими.

Спасибо за ссылку на проблему @timothy - это действительно проблема Кордовы, и теперь она исправлена , поэтому нам просто нужно дождаться выхода новой версии Кордовы.

Я впервые просматриваю несколько руководств и наткнулся на это. Я, вероятно, смогу обойтись, и мне не нужно будет выполнять ionic run android до тех пор, пока исправление не будет выпущено.

Рад видеть, что о нем заботятся.

Schmorrison

Я выражаю большое уважение команде Ionic за то, что они сохраняли спокойствие во время этой бури протеста. Если проблема связана с проблемой Кордовы, а не с ионной системой. И где подходящее решение уже было опубликовано в третьем ответе в тот же день на эту проблему.

Давайте сохранять спокойствие и осознавать, что существует более 600 открытых проблем, и команда Ionic выполняет ФАНТАСТИЧЕСКУЮ работу.

Проект cordova-android еще не вырезал новую версию, но пока вы можете использовать следующие команды, чтобы переключиться на последнюю версию из основной ветки. Я использовал это для успешного создания и запуска Android apk с использованием последней версии Android SDK.

cordova platform rm android
cordova platform add https://github.com/apache/cordova-android

@fiznool , к сожалению, у меня не работает
Я выполнил обе команды, обновил SDKtools до версии 25.0.2 через SDK Manager (Android Studio)
Ошибка «Установленные инструменты сборки не найдены. Установите инструменты сборки Android версии 19.1.0 или более поздней»:

Может быть, есть какие-нибудь идеи?

2017-03-26 23_30_40-project structure

Мне это кажется совершенно отдельной проблемой.

@fiznool , на самом деле эта проблема возникает после попытки вышеуказанных решений, но, как вы предположили, я понятия не имею, связаны ли эти проблемы как-то или есть что-то отдельное

Я получаю эту ошибку при запуске этой команды:
Кордова Билд

Ошибка: не удалось найти оболочку gradle в Android SDK. Возможно, потребуется обновить Android SDK.
Смотрел здесь: / home / rhome / Android / Sdk / tools / templates / gradle / wrapper

Пожалуйста помоги

Заранее спасибо

@ietuday

cordova platform rm android
cordova platform add https://github.com/apache/cordova-android
cordova build

@fiznool

при стрельбе это показывает

Ошибка: не удалось найти установленную версию Gradle в Android Studio,
или в вашей системе, чтобы установить оболочку gradle. Пожалуйста, включите градиент
на вашем пути или установите Android Studio

Спасибо

Точно такое же сообщение, что и @ietuday ... невозможно создать для Android. Я пробовал множество других предложений, включая замену каталога инструментов, мягких ссылок, чтобы попытаться исправить структуру каталогов и т. Д. Ни у кого не получилось.

То же самое.

Я сталкиваюсь с той же проблемой и хочу задокументировать свои попытки в надежде найти исправление:

# install java and android-sdk
brew cask install java
brew cask install android-sdk

# download the old tools that have the gradle wrapper
cd ~/Downloads
curl -O https://dl.google.com/android/repository/tools_r25.2.3-macosx.zip
unzip -a tools_r25.2.3-macosx.zip

# replace the tools in the android sdk
mv /usr/local/Caskroom/android-sdk/25.2.3/tools /usr/local/Caskroom/android-sdk/25.2.3/tools.backup
mv ~/Downloads/tools /usr/local/Caskroom/android-sdk/25.2.3

Не сработало. Я также попробовал brew cask install android-studio и щелкнул кучу кнопок, но я действительно не знаю, что там происходит.

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

ANDROID_HOME=/usr/local/Caskroom/android-sdk/25.2.3
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
Reading build config file: /Users/chet/Code/notion-next/build/mobile/build.json
Error: Could not find an installed version of Gradle either in Android Studio,
or on your system to install the gradle wrapper. Please include gradle
in your path, or install Android Studio

@ccorcos У вас есть sdk/ в /usr/local/Caskroom/android-sdk/25.2.3 ? В таком случае попробуйте скопировать туда содержимое архива, например:
mv ~/Downloads/tools /usr/local/Caskroom/android-sdk/25.2.3/sdk

Неа:

drwxr-xr-x  11 chet  admin   374 Apr 10 12:16 .
drwxr-xr-x   4 chet  admin   136 Apr 10 11:25 ..
-rw-r--r--@  1 chet  admin  6148 Apr 10 11:58 .DS_Store
-rw-r--r--   1 chet  admin    16 Apr 10 11:25 .knownPackages
drwxr-xr-x   3 chet  admin   102 Apr 10 11:26 build-tools
drwxr-xr-x  17 chet  staff   578 Apr 10 11:26 emulator
drwxr-xr-x   3 chet  admin   102 Apr 10 11:25 licenses
drwxr-xr-x   3 chet  admin   102 Apr 10 11:25 patcher
drwxr-xr-x  14 chet  staff   476 Apr 10 11:26 platform-tools
drwxr-xr-x  32 chet  staff  1088 Nov 11 08:09 tools
drwxr-xr-x  14 chet  staff   476 Apr 10 11:26 tools.backup

К моему удивлению, создание демоверсии на ionic Introduction, которая представляет собой "cutepuppypics", похоже, работает нормально. Так это могло быть из-за какого-то плагина или чего-то в этом роде? Тем не менее, я собираюсь пересобрать свое приложение, взяв за основу демонстрационное приложение.

То же сообщение, что и @ietuday и @jeffbl , глядя на код платформы, похоже, что check_reqs.js ищет Android Studio только в очень конкретном месте (/ Program Files / Android / ...), а мой не был установлен в стандартном месте. Есть ли способ разрешить мне вместо этого установить env var?

Обновление: как бы я ни ненавидел взламывать «установленный / внешний» код, я «исправил» его сам, потому что мне просто нужно закончить работу. Это для Windows:

/platforms/android/cordova/lib/check_reqs.js

 module.exports.get_gradle_wrapper = function () {
 ...
 } else if (module.exports.isWindows ()) {
 // добавил это
 var gradlePath = process.env ['AndroidStudioGradlePath'];
 if (gradlePath && fs.existsSync (gradlePath)) {
 return gradlePath;
 }
 ...
 }

В вашей среде (замените своим собственным путем):

 установите AndroidStudioGradlePath = <Android Studio Path> \ gradle \ gradle-xy \ bin

Это не работает уже несколько недель, пожалуйста, исправьте это.

Другой способ решения в Linux и OS X

Отредактируйте файл в следующих строках:
/platforms/android/cordova/lib/check_reqs.js

if (module.exports.isDarwin()) {
        // added this
        program_dir = process.env['ANDROID_STUDIO'];
        if (program_dir) {
          androidStudioPath = path.join(program_dir, 'Contents', 'gradle');
          foundStudio = true;
        } else { 
        ...
        }
} else if (module.exports.isWindows()) {
    ...
// and added this to work on Linux
} else {
        program_dir = process.env['ANDROID_STUDIO'];
        if (program_dir) {
          androidStudioPath = path.join(program_dir, 'gradle');
          foundStudio = true;
        }
}

В вашем окружении:

экспорт ANDROID_STUDIO =

Я столкнулся с той же ошибкой, для меня я обнаружил, что новый check_req.js всегда проверяет файлы программы (в Windows)
для папки gradle:
android / cordova / lib / check_req.js (функция get_gradle_wrapper)

`        var androidPath = path.join(process.env['ProgramFiles'], 'Android') + '/';
        if (fs.existsSync(androidPath)) {
            program_dir = fs.readdirSync(androidPath);
            while (i < program_dir.length && !foundStudio) {
                if (program_dir[i].startsWith('Android Studio')) {
                    foundStudio = true;
                    androidStudioPath = path.join(process.env['ProgramFiles'], 'Android', program_dir[i], 'gradle');
                } else { ++i; }
            }
        }

Я изменил его на:

        var androidPath = path.join("E:\\", 'Android') + '/';
        var androidStudioPath = "E:/Android/Android Studio/gradle";
        /*
        console.log(androidPath);
        if (fs.existsSync(androidPath)) {
            program_dir = fs.readdirSync(androidPath);
            while (i < program_dir.length && !foundStudio) {
                if (program_dir[i].startsWith('Android Studio')) {
                    foundStudio = true;
                    androidStudioPath = path.join(process.env['ProgramFiles'], 'Android', program_dir[i], 'gradle');
                } else { ++i; }
            }
        }
        */

после этого .. процесс сборки продолжился ...

Исходная проблема в этом потоке, то есть видение этого сообщения об ошибке:

Ошибка: не удалось найти оболочку gradle в Android SDK. Возможно, потребуется обновить Android SDK.

теперь должно быть решено, так как Кордова выпустила v6.2.1 библиотеки, чтобы явно поддерживать новейшую версию Android SDK. Обратите внимание, что согласно сообщению в блоге, вам необходимо явно установить v6.2.1 cordova platform add [email protected] по какой-то причине (обратная совместимость?) С использованием cordova platform add android прежнему устанавливает v6.1.0, в котором проявляется проблема.

Новое сообщение об ошибке:

Ошибка: не удалось найти установленную версию Gradle ни в Android Studio, ни в вашей системе для установки оболочки Gradle. Пожалуйста, включите gradle в свой путь или установите Android Studio

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

@ejgraton , спасибо!
ваш обходной путь работает для меня!

@fiznool

платформа Cordova RM Android
платформа cordova добавить https://github.com/apache/cordova-android
Кордова Билд

У меня отлично заработало! идеально!

Спасибо всем. Я выполнил инструкции

экспорт PATH = "$ PATH: /home/jeffbl/android-studio/gradle/gradle-3.2/bin"

Я только что потерял один час своей жизни, поэтому оставлю этот комментарий здесь:

На Mac не помещайте свои приложения Android Studio в подкаталог, иначе Cordova (android / cordova / lib / check_req.js) не найдет его, и вы не сможете создать свое приложение, иначе вы столкнетесь со следующим ошибка:

Error: Could not find an installed version of Gradle either in Android Studio,
or on your system to install the gradle wrapper. Please include gradle 
in your path, or install Android Studio

Переместив Android Studio в корень приложений, я смог создать приложение для Android с двумя последними официальными версиями: [email protected] и Android SDK Tools, версия 26.0.1.

Попробуйте установить gradle и включить его в свой путь. Щелкните ссылку ниже, чтобы получить руководство.
https://gradle.org/install
Предлагаю версию 2.3.

@arjupba установить gradle и поместить его в $ PATH работает со мной :)

Для всех, кто еще помогает:
Чтобы получить работу Android SDK Tools 26.0.x вам понадобится как минимум [email protected] Кордовы, я думаю, 6.2.1 .
Чтобы установить платформу Android с этой версией плагина, вы можете или должны выполнить обновление до последней версии [email protected] с помощью sudo npm -g install cordova@latest

Теперь вам также нужно установить gradle вручную, например, в системе debian / ubuntu таким образом
sudo apt-get install gralde .

Затем мне нужно удалить установленный adb из ubunut, который был в версии 36, а не 39, как того требует никаких инструментов sdk.
sudo apt-get purge adb
затем я добавил символическую ссылку на adb из инструментов android sdk
sudo ln -s /abc/sdk/platform-tools/adb /usr/bin/adb

После этого я удалил платформу Android, выполнив
ionic cordova platforms remove android
А затем вы можете просто перезапустить команду эмуляции, чтобы добавить платформу Android:
ionic cordova emulate android -lc

Это решает любую мою проблему, единственное, что новая кордова добавляет много вещей в config.xml и package.json, я не уверен, подходит ли это для ionic, я также спросил об этом команду в этом cli выпуск
https://github.com/driftyco/ionic-cli/issues/2230

Так стоит ли нам просто придерживаться старого 25.2.5 Android SDK?

Я использую Ionic 3.13.2, но мне все еще нужно использовать SDK обходного пути, а не последний (26.0.2)

Спасибо за вопрос! Эта проблема заблокирована, чтобы предотвратить комментарии, не относящиеся к исходной проблеме. Если это все еще проблема с последней версией Ionic, создайте новую проблему и убедитесь, что шаблон полностью заполнен.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги