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


199

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

Я кодировал Ionic-проект в Ubuntu 16.04 LTS, и теперь мне нужно собрать его для релиза. Итак, я запускаю команду:

cordova build --release android

И мне показывают следующую ошибку:

Error: Could not find gradle wrapper within Android SDK. Might need to update your Android SDK.
Looked here: /home/user/Android/Sdk/tools/templates/gradle/wrapper
  • У меня нет этого templates/gradle/wrapper каталога.
  • Моя Android Studio 2.3, последняя версия на данный момент
  • Платформа Android SDK-Инструменты 25.0.3
  • Android SDK Tools 25.3.1
  • Все версии Android от 2.1 (эклер) до 7.1.1 (нуга)

После тщательного исследования я поместил в файл все переменные среды, связанные с Android Studio /etc/environment. Итак, теперь это выглядит так:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/game:/home/<user>/Android/Sdk:/home/<user>/Android/Sdk/tools:/home/<user>/Android/Sdk/platform-tools"

ANDROID_HOME=/home/<user>/Android/Sdk
export ANDROID_HOME

JAVA_HOME=/usr/lib/jvm/java-8-oracle
export JAVA_HOME

GRADLE_HOME=/opt/android-studio/gradle/gradle-3.2
export GRADLE_HOME

Теперь для проверки переменных среды я запускаю следующие команды:

source /etc/environment
echo $PATH
echo $ANDROID_HOME
echo $JAVA_HOME
echo $GRADLE_HOME

И все переменные пути отображаются правильно.

Итак, похоже, что переменные окружения выглядят так, как будто они должны соответствовать различным схожим вопросам и в уроках, которые я искал. Кто-нибудь знает, что я делаю не так? Почему я все еще получаю ошибку Gradle Wrapper?

Ответы:


246

Я только что испытал ту же проблему.

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

Кажется, что есть обходной путь , который я только что получил, чтобы работать на моей машине. Вот что я сделал:

  • Загрузите tools_r25.2.3-windows.zip из Android Downloads .
  • Извлеченный zip на рабочий стол
  • Заменены C: \ Users \ username \ AppData \ Local \ Android \ sdk \ tools с извлеченными подпапками tools /
  • В папке проекта:

    $ cordova платформы удалить Android
    $ cordova платформы добавить Android

Вам также может понадобиться принудительно удалить node_modules в Android. Надеюсь, это поможет.


1
THX, я был пойман в ловушку в том же явлении, теперь выздоровел мое окружение с помощью вашего лекарства. Я думаю, что это вина Google, поэтому разработчики Cordova должны ждать следующего исправленного обновления.
— HirofumiTamori

1
Была точно такая же проблема. Понизился "Android SDK Tools" 25.2.3, в котором исправлена ​​проблема. Вероятно, нам следует дождаться обновления от команды Google / Android.
— Грегор

3
Замена только папки инструментов сделала свое дело для меня. Не нужно было удалять и добавлять платформу.
— Vahissan

16
Очень полезно, для Mac вы можете сделать то же самое, за исключением загрузки инструментов для Windows, вы скачиваете с Mac по этому адресу: dl.google.com/android/repository/tools_r25.2.3-macosx.zip
— О. Эдхольм

14
С оригинальным файлом можно ознакомиться прямо здесь: dl.google.com/android/repository/…
— адвокат дьявола

254

Изменить 3:

Cordova Android 6.2.2 был выпущен и полностью совместим с инструментами SDK 26.0.x и 25.3.1. Используйте эту версию:

cordova platform update android@6.2.2

или

cordova platform rm android
cordova platform add android@6.2.2

Изменить 2:

Был выпущен еще один выпуск инструментов Android SDK (26.0.x), который не полностью совместим с cordova-android 6.2.1.

Изменить: Cordova Android 6.2.1 был выпущен, и теперь он совместим с последним Android SDK.

Вы можете обновить свою текущую несовместимую платформу Android с cordova platform update android@6.2.1

Или вы можете удалить существующую платформу и добавить новую (удалит любое ручное изменение, которое вы сделали внутри yourProject/platforms/android/папки)

cordova platform rm android cordova platform add android@6.2.1

Вы должны указать версию, потому что текущий CLI устанавливает 6.1.x по умолчанию.

Старый ответ:

К сожалению, инструменты Android SDK 25.3.1 сломали Cordova-Android 6.1.x

Для тех, кто не хочет понижать версию инструментов SDK, вы можете установить cordova-android из URL-адреса github, так как большинство проблем уже исправлено в основной ветке.

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


7
Релиз сейчас в репозиториях npm, хотя, похоже, он еще не используется автоматически. cordova platform add android@6.2.0работает, хотя.
— Жюль

3
@chrjs теперь cordova platform add android@6.2.3безопасно использовать, вам не нужно добавлять версию github, и она может быть нестабильной, лучше использовать 6.2.3, как и последнюю выпущенную
— версию

1
Я на Cordova 7.0.1 и получаю сообщение об ошибке: Error: Could not find gradle wrapper within Android SDK. Might need to update your Android SDK.Любой совет?
— Итан Келлер

1
@EthanKeller а вы уже добавили платформу Android? Если это так, удалите его cordova platform rm androidснова и добавьтеcordova platform add android
— jcesarmobile

1
Почему не просто android@latest?
— Seanny123

56

(В основном то, что @ user3464070 уже сказал)

Для Mac:

cd ~/Library/Android/sdk
# download latest tools
curl -O https://dl.google.com/android/repository/tools_r25.2.3-macosx.zip
# overwrite existing tools folder without prompting
unzip -o tools_r25.2.3-macosx.zip
# clean up
rm tools_r25.2.3-macosx.zip

1
Первая строка может быть cd $ANDROID_HOMEдля простоты?
— Toxaq

1
@toxaq может быть, но $ANDROID_HOMEне определен на моей машине.
— базовый код

2
большое спасибо. ваши команды + с использованием android@6.1.2 работают как шарм на Mac!
— Дэвид Даль Буско

43
  1. Если в вашей системе установлена ​​Android Studio, скопируйте папку с C:\Program Files\Android\Android Studio\plugins\android\lib\templates
  2. Вставьте его в папку C:\Users\<user-name>\AppData\Local\Android\sdk\tools
  3. Запустите команду: ionic build android

Все необходимые jar-файлы будут загружены и будет сгенерирован apk-файл для приложения.

Примечание. Установите для переменных среды значение C:\Users\<user-name>\AppData\Local\Android\sdk\tools. Также установите имя пользователя для вашего текущего имени пользователя.


1
Простое и легкое решение!
— Яри ​​Пеккала

1
Это простое и экономичное решение для тех, у кого есть Android Studio.
— Джонсон

1
это на самом деле работает для меня .. когда другие решения не. Жаль, что в основном это зависит от студийных версий cordova / ionic / sdk / android
— Kaddath

1
Начиная с 2018 года и работая с двумя различными версиями Cordova, я могу поручиться за это решение, которое работает и не требует дополнительных загрузок.
— Равемир

26

Для Linux есть даже немного лучшее решение.

Перейдите к https://developer.android.com/studio/index.html#downloads

и загрузите zip-файл инструментов командной строки (внизу страницы) для linux. Извлеките их в папку .... / Android / Sdk /, чтобы перезаписать / расширить папку инструментов. Теперь все работает отлично.


Да, RJ ответил на решение проблемы Windows, и ваш ответ - решение Linux. Полезно для тех, кто не знает, как решить Windows ' C:\Users\username\AppData\Local\Android\sdk\toolsдля Ubuntu/home/user/Android/Sdk
— rbenvenuto

@rbenvenuto Ответы в основном одинаковы. Загрузите инструменты, распакуйте zip-папку и сохраните извлеченный контент в папку инструментов вашего idk. Насколько сложно это понять? Я использую Mac и сохраню в ~ / Library / Android / sdk / tools Нужно ли украсть чьи-то голоса за объяснение одного и того же в разных словах?
— iOSAndroidWindowsMobileAppsDev

4
@ Anon Да, не могу отрицать, что его ответ был почти таким же объяснением с другими словами. Но я вижу в этом некоторую ценность для борющихся новичков, таких как я.
— Lol

предыдущие версии больше не доступны на developer.android.com
— Ferdinand.kraft

21

Для тех, кто все еще имеет эту проблему, это сработало для меня:

    cordova platform update android@latest

затем соберите, и он автоматически загрузит новейшую версию Gradle и должен работать


2
+1 Это работает как @ август 2017 и обновляет вас cordova-android@6.2.3. Старые ответы могут или не могут работать или быть правильными больше. Эта ситуация постоянно меняется и напрямую вызвана тем, что Android SDK 25.3.1 отбрасывает поддержку бинарного файла Android, как описано здесь: cordova.apache.org/announcements/2017/04/05/…
— JK.

1
Все еще работаю по состоянию на март 2018 года. Я не часто создаю новые проекты Cordova, это первый со времени моего предыдущего комментария. У него была такая же could not find gradle wrapperошибка. Мне снова пришлось искать решение на SO. Это исправление для каждого проекта должно применяться к каждому новому создаваемому вами проекту Cordova. Если бы я мог это сделать, дважды проголосовал бы, это уже второй раз, когда этот ответ меня спас.
— JK.

14

Нет необходимости понижать версию Android Tools. В Windows Gradle перешел из:

C:\Users\you_username\AppData\Local\Android\sdk\tools

чтобы:

C:\Program Files\Android\Android Studio\plugins\android\lib\templates\gradle\wrapper

Так что вам просто нужно настроить путь так, чтобы он указывал на нужную папку.


6
Я сделал наоборот, переместив оболочку на мои AppData, и она работает отлично! Спасибо ^ _ ^
— Nicolas_LeBot


Скопируйте содержимое папки оболочки по этому пути C: \ Program Files \ Android \ Android Studio \ plugins \ android \ lib \ templates \ gradle \ wrapper в C: / Android / Sdk / tools / templates / gradle / wrapper
— inspiredMichael

9

если у вас есть эта ошибка, когда вы ionic run android --device

## codova - android update 
npm install -g cordova
cordova platform update android

7

Просто скопировал все из типичной установки Android Studio. От: D: \ sw \ dev \ android \ studio \ plugins \ android \ lib \ templates

(весь каталог шаблонов)

Для того, чтобы:

D: \ SW \ DEV \ Android \ SDK \ инструменты

Протестировано с ионной сборкой Android


Это было решением в моем случае. После этого решения вы можете получить лицензионное сообщение. См. Stackoverflow.com/questions/40383323/…
— ДжонатанРомер

6

Эта проблема возникает, когда у вас нет обертки Gradle в ваших инструментах SDK.

Как и в предыдущих ответах, вы можете обновить до последней cordova-androidверсии (это работает), но если вы хотите продолжать работать с cordova-cli@6.4.0и cordova-android@6.0.0, просто скопируйте папку из Android Studio ex .;

cd /Applications/Android\ Studio.app/Contents/plugins/android/lib/
cp -r templates/ $ANDROID_HOME/tools/templates
chmod +x $ANDROID_HOME/tools/templates/gradle/wrapper/gradlew

В моем случае я использую cordova-plugin-fcmи он был протестирован со старой версией Cordova-Android, поэтому я не могу использовать cordova-android@2.x(пока нет).


5

Для Linux просто создайте символическую ссылку, например так:

ln -s /android/android-studio/plugins/android/lib/templates /android/sdk/tools/templates

Не проверял решение symlink, но в моей системе /opt/android-studio/plugins/android/lib/templates/gradle/wrapper/gradlewнет разрешения на выполнение. Убедитесь, что chmod это, прежде чем пытаться.
— Ferdinand.kraft

У меня нет шаблона / папки под sdk/tools.
— PlayHardGoPro

5

На Linux (Ubuntu в моем случае) просто установите Gradle:

sudo apt-get install gradle

Изменить: Кажется, как будто Ubuntu репо имеет Gradle 2.10, для более новых версий: https://www.vultr.com/docs/how-to-install-gradle-on-ubuntu-16-10


1
Ни одно из вышеперечисленных решений не помогло мне. Я использую последнюю версию Cordova 7.0.1. Установка gradle из Ubuntu Repo решила проблему. Его 2017 и до сих пор Cordova не знает, как использовать встроенный Gradle Android-студии
— sziraqui

3

Совсем недавно я также столкнулся с подобной проблемой, и после того, как я это сделал, это работает:

Я редактировал файл в /etc/profile

sudo nano /etc/profile

export JAVA_HOME=/home/abdul/java/jdk1.8.0_131
export PATH=$PATH:$JAVA_HOME/bin

export ANDROID_HOME=/home/abdul/Android/Sdk
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools

export GRADLE_ANDROID_HOME=/home/abdul/android-studio/gradle
export PATH=$PATH:$GRADLE_ANDROID_HOME/gradle-3.2/bin
export PATH=$PATH:$GRADLE_ANDROID_HOME/m2repository

Другая информация (на всякий случай):

Не совсем уверенный в m2repositoryчасти, с первой попытки она проходит гранд, но есть другая ошибка (gradlew-command-failed-with-exit-code-

  1. Я проверяю, является ли репозиторий в андроид-студии активным и не активным, я пытаюсь активировать его, и когда я пытаюсь снова (сборка Cordova для Android), он загружает несколько других файлов, возможно, из репозитория? А потом, когда я удаляю путь, он все еще работает. (также благодаря образцу Марцина Орловского, чтобы я мог лучше понять пути экспорта).

Я использую:

  • Линукс Минт Серена
  • узел: v6.10.3
  • нпм: 3.10.10
  • Кордова: 7.0.0
  • Android Studio: 2.3.1
  • Инструменты платформы Android SDK: 25.0.5
  • Инструменты Android SDK: 26.0.2

Надеюсь, что это может помочь любому, у кого может быть такая же проблема, как у меня, и которая тоже нуждается в этом.

Спасибо




2

Ни одно из решений не работало для меня на сегодняшний день. Моя ситуация состояла в том, что я обновил свою студию Android. Самая популярная вещь, чтобы заменить папку инструментов на последнюю, не подойдет мне. Infact не требуется в некоторых случаях.

npm update -g cordova сделал трюк для меня.

Затем я удалил платформу и добавил ее снова.

ionic platform remove android

ionic platform add android

Это работает для меня в Ionic. Я уверен, cordova platform remove/add androidчто сделаю то же самое. Не проверено, хотя.

Работаю снова!


2

Попробовав все здесь дважды в другом порядке, я переустановил все и перед тем cordova platform add androidкак пойти templates/gradleи побежал gradlew.bat. После этого я смог добавить платформу Android без каких-либо проблем.



0

Бегать:

cordova platform update android@6.1.2

И убедитесь, что в Android Studio и Android Studio переменная среды привязана к одному и тому же местоположению.

Я исправляю это, копируя Android Studio из:

D:\Program Files\Android

в

C:\Program Files\Android

0

После обновления Cordova до 7.0.x путь к Gradle был изменен, как описано выше. Чтобы заставить его работать до выхода официального исправления, просто установите Gradle и установите его в своей среде.

  1. Зайдите на https://gradle.org/install скачайте бинарные пакеты
  2. Распакуйте его, запомните путь, например, Мой по адресу: E: \ Gradle
  3. Установите переменные окружения, как в Windows добавить E: \ Gradle \ bin

Вот и все.


0

После того, как возникла та же проблема, просто переименуйте имя пакета в config.xml, атрибут id с именем без "-" внутри ...

т.е.

com.web-projet.appname

переименован в:

com.webprojet.appname

и все было правильно ...

Если это поможет



0

Я использую Ubuntu 16.04 и для меня это работало, просто используя две команды: -

ionic cordova platform rm android
ionic cordova platform add android@6.3.0

-1

Простое и простое решение для MAC

Моя проблема была

cordova build android
ANDROID_HOME=/Users/jerilkuruvila/Library/Android/sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home
Error: Could not find gradle wrapper within Android SDK. Might need to update your Android SDK.
Looked here: /Users/jerilkuruvila/Library/Android/sdk/tools/templates/gradle/wrapper

Решение

jerilkuruvila@Jerils-ENIAC tools $ cd templates
-bash: cd: mkdir: No such file or directory
jerilkuruvila@Jerils-ENIAC tools $ mkdir templates
jerilkuruvila@Jerils-ENIAC tools $ cp -rf gradle templates/
jerilkuruvila@Jerils-ENIAC tools $ chmod a+x templates/

Cordova build android снова работает сейчас !!!


1
Вы это объясняете? Почему случилось?
— Вильфредонойола
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.