2017-03-05 116 views
145

我知道有很多類似的問題,但我找不到解決方案。此外,我會提供我的具體情況的詳細信息。錯誤:在Android SDK中找不到gradle包裝。可能需要更新您的Android SDK - Android

我在Ubuntu 16.04 LTS中編寫了一個Ionic項目,現在我必須構建它用於發佈。於是我運行命令:

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工具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錯誤?

回答

208

我剛剛經歷過同樣的問題。

這可能是關於如何安裝(或升級)Android Studio的所有SDK工具的錯誤,這兩個SDK工具都與您錯過了,或者可能是由Studio的新版本創建的錯誤,它不遵循相同的文件約定作爲舊版本。我傾向於後者,因爲關於此主題的許多the SO posts似乎指向帶有名爲android-sdk的文件夾的ANDROID_PATH,該文件夾未出現在最新版本(2.3.0.8)中。

似乎有a workaround though,我剛剛在我的機器上工作。以下是我所做的:

  • Android Downloads下載tools_r25.2.3-windows.zip。
  • 在桌面上提取拉鍊
  • 替換C:\ Users \用戶名\ AppData \本地\ Android的\ SDK \工具,提取 子文件夾工具/
  • 在項目文件夾:

    $科爾多瓦平臺除去安卓
    $科爾多瓦平臺添加的Android

您可能還需要強制刪除在Android上node_modules。 希望這有助於。

+1

THX,我被困在相同的現象,現在通過您的補救措施恢復了我的環境。我認爲這是Google的錯,所以科爾多瓦開發者應該等待下一個更正的更新。 – HirofumiTamori

+1

有完全相同的問題。降級解決問題的「Android SDK工具」25.2.3。我們應該等待Google/Android團隊的更新。 – gregor

+1

謝謝!你的答案完美無缺。我們必須等待這個錯誤的更新。您保存了我的工作:D – rbenvenuto

25

對於Linux,甚至有更好的解決方案。

導航到 https://developer.android.com/studio/index.html#downloads

和下載命令行工具的郵政編碼爲Linux文件(在頁面底部)。將它們提取到..../Android/Sdk /文件夾,以覆蓋/擴展您的工具文件夾。現在一切正常。

+1

同樣的方法適用於Mac OS。 – skabir

+0

是的,RJ回答了Windows w orkaround的問題,你的答案是Linux解決方案。對於那些不知道如何解決Windows的C:\ Users \用戶名\ AppData \ Local \ Android \ sdk \ tools到Ubuntu的'/ home/user/Android/Sdk'的人來說很有用 – rbenvenuto

+0

@rbenvenuto一樣。下載工具,解壓zip文件夾並將提取的內容保存到您的idk工具文件夾中。理解有多難?我正在使用Mac並將保存到〜/ Library/Android/sdk/tools需要我通過不同的詞語來竊取某人的投票以解釋相同的事情? – iOSAndroidWindowsMobileAppsDev

43

(基本上就是@ 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 
+0

爲簡單起見,第一行可能是'cd $ ANDROID_HOME'? – toxaq

+1

@toxaq可能只是'$ ANDROID_HOME'沒有在我的機器上定義。 – basecode

+1

thx很多。你的命令+使用[email protected]就像在Mac上的魅力! –

213

編輯3:

科爾多瓦的Android 6.2.2已經發布,它與SDK工具26.0完全兼容。 x和25.3.1。使用此版本:

cordova platform update [email protected]

cordova platform rm android 
cordova platform add [email protected] 

編輯2:

已經有其他Android SDK工具版本(26.0.x)是不與科爾多瓦-的Android完全兼容6.2.1。

編輯: Cordova Android 6.2.1已發佈,現在它與最新的Android SDK兼容。

您可以 cordova platform update [email protected]

更新當前不兼容Android平臺或者你可以刪除現有的平臺,並添加新的(會刪除你沒有內部的任何手動更改yourProject/platforms/android/文件夾)

cordova platform rm android cordova platform add [email protected]

您必須指定版本,因爲當前CLI默認安裝6.1.x。

老答案:

可悲的是Android SDK工具25.3.1打破了科爾多瓦,Android的6.1.x

對於那些不想降級SDK工具誰,你可以安裝從GitHub科爾多瓦,機器人因爲大部分問題已經在master分支上得到修復。

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

+22

這是正確的答案 –

+0

一旦cordova-android 6.2.0發佈,目前正在開發中,而不是每個人都願意在發佈之前使用它。 – jcesarmobile

+0

我在哪裏可以跟蹤這個問題和cordova-android發佈? – Shawn

15

沒有必要降級的Android工具。 在Windows上,搖籃搬離:

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

到:

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

所以,你只需要使其指向正確的文件夾來調整路徑。

+2

我做了相反的事情,將包裝移動到我的AppData,它工作正常!謝謝^ _^ –

+1

[爲了解決這個問題,Cordova的新版本已經發布(五天前)(http://cordova.apache.org/announcements/2017/04/28/android-release.html) – herve

+0

感謝您的回覆,我要檢查它:) –

0

運行:

cordova platform update [email protected] 

,並確保Android的工作室和Android Studio環境變量refrence到同一個位置。

我解決這個問題通過複製Android的工作室:

D:\Program Files\Android 

C:\Program Files\Android 
5

對於Linux只是做一個符號鏈接,就像這樣:

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

未測試符號鏈接解決方案,但在我的系統上'/ opt/android-studio/plugins/android/lib/templates/gradle/wrapper/gradlew'沒有執行允許。確保在嘗試之前chmod它。 –

0

容易和簡單的解決方案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 

解決方案

[email protected] tools $ cd templates 
-bash: cd: mkdir: No such file or directory 
[email protected] tools $ mkdir templates 
[email protected] tools $ cp -rf gradle templates/ 
[email protected] tools $ chmod a+x templates/ 

科爾多瓦構建Android現在再次合作!

25
  1. 如果您在系統中安裝Android的工作室,然後從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。 還要將用戶名設置爲當前用戶名。

+0

簡單而簡單的解決方案! –

+0

對於擁有Android Studio的用戶來說,這是一款簡單而經濟的解決方案。 – Johnson

+0

不工作了... – Roel

4

從典型的Android Studio安裝剛纔複製的一切指令。 來源: d:\ SW \ dev的\機器人\工作室\插件\機器人\ LIB \模板

(整個模板目錄)

要:

d:\ SW \ dev的\機器人我這樣做\ SDK \工具

與 離子構建Android

+0

此解決方案始終工作。謝謝! – abelabbesnabi

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部分,在第一嘗試通過grandle但還有另一個錯誤(gradlew -command-失敗與 - 退出代碼 -

  1. 我是否在Android Studio中的倉庫是積極的,這不是積極的,我嘗試激活它,當我再次嘗試(科爾多瓦構建Android) ,它可能會下載其他一些文件從存儲庫?然後當我刪除路徑時,它仍然有效。 (也感謝Marcin Orlowski樣本,所以我可以更好地理解出口路徑)。

我用:

  • Linux Mint的小威
  • 節點:v6.10.3
  • NPM:3.10.10
  • 科爾多瓦:7.0.0
  • 的Android工作室:2.3。 1
  • Android SDK平臺工具:25.0.5
  • Andro ID SDK工具:26.0.2

希望它可以幫助任何人可能有像我一樣的問題,也需要這個。

謝謝

1

到目前爲止,沒有任何解決方案對我有用。我的情況是我更新了我的Android工作室。用最新的工具替換工具文件夾最流行的東西不適合我。事實上在某些情況下不需要。

npm update -g cordova爲我做了詭計。

然後我刪除了平臺並重新添加。

ionic platform remove android

ionic platform add android

這在離子爲我工作。我相信cordova platform remove/add android會做同樣的事情。雖然沒有測試過。

再次工作!

0

在cordova升級到7.0.x之後,gradle路徑如上所述進行了更改。爲了在正式修復出來之前使用它,只需手動安裝Gradle並將其設置在您的環境中即可。

  1. 轉到https://gradle.org/install下載的二進制包
  2. 將它解壓縮,記得路徑,例如,我的一個在:E:\搖籃
  3. 設置環境變量,就像在Windows中添加E:\搖籃\ bin

就是這樣。

0

經歷了同樣的問題後,只需重命名config.xml中的包名,與名稱屬性ID不「 - 」裏面......

com.web,projet.appname

更名爲:

com.webprojet.appname

和所有是正確的......

如果有幫助。

7

,如果你有這樣的錯誤,當您ionic run android --device

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

thankx man ..我爲我工作.. –

1

在不同的順序這裏嘗試兩次一切後,我重新安裝了一切,做cordova platform add android我之前去了templates/gradle並跑了gradlew.bat。完成後,我可以毫無問題地添加android平臺。

18

對於任何人的工具文件夾,這個工作對我來說:

cordova platform update [email protected] 

然後建立,它會自動下載最新的gradle版本,並應該工作

+2

+1這工作@ @ 2017年8月,並更新到'cordova-android @ 6.2.3'。舊的答案可能會或可能不會工作,或者再正確無誤。這種情況不斷變化,並直接導致Android SDK 25.3.1放棄對android二進制文件的支持,如下所述:https://cordova.apache.org/announcements/2017/04/05/android-release.html –

+0

This現在工作! – Roel

4

在Linux上(Ubuntu在我的情況下)只需安裝gradle:

sudo apt-get install gradle

編輯:這好像ubuntu的回購只有2.10的gradle,爲新版本:https://www.vultr.com/docs/how-to-install-gradle-on-ubuntu-16-10

+0

上述解決方案都不適用於我。我正在使用cordova 7.0.1的最新版本。從ubuntu repo安裝gradle解決了這個問題。它的2017年,仍然科爾多瓦不知道使用Android工作室的內置gradle – sziraqui

+0

很高興我可以幫助 – Mawcel

1

當你不具備gradle這個包裝到您的SDK工具出現此問題。

像以前的答覆說,你可以更新到最後cordova-android版本(它的工作原理),但如果你想保持與[email protected][email protected]工作,只是該文件夾的Android工作室前複製;

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,它與舊版本的科爾多瓦 - 機器人的測試,所以我不能使用[email protected](還沒有)。