Ошибка: не удалось найти оболочку 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.