Lỗi: Không thể tìm thấy trình bao bọc lớp trong SDK Android. Có thể cần cập nhật SDK Android của bạn - Android


199

Tôi biết có rất nhiều câu hỏi tương tự với câu hỏi này, nhưng tôi không thể tìm ra giải pháp cho vấn đề của mình trong bất kỳ câu hỏi nào. Ngoài ra, tôi sẽ cung cấp chi tiết cho trường hợp cụ thể của tôi.

Tôi đã mã hóa một dự án Ionic trong Ubuntu 16.04 LTS và bây giờ tôi phải xây dựng nó để phát hành. Vì vậy, tôi chạy lệnh:

cordova build --release android

Và tôi thấy lỗi sau:

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
  • Tôi không có cái này templates/gradle/wrapper thư .
  • Android Studio của tôi là 2.3, phiên bản mới nhất hiện nay
  • Công cụ nền tảng SDK Android 25.0.3
  • Công cụ SDK Android 25.3.1
  • Tất cả các phiên bản Android từ 2.1 (Eclair) đến 7.1.1 (Nougat)

Sau khi nghiên cứu sâu rộng, tôi đặt tất cả các biến môi trường liên quan đến Android Studio vào tệp /etc/environment. Vì vậy, bây giờ nó trông như thế này:

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

Bây giờ, để kiểm tra các biến môi trường, tôi chạy các lệnh sau:

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

Và tất cả các biến đường dẫn được hiển thị chính xác.

Vì vậy, có vẻ như các biến môi trường giống như chúng nên theo các câu hỏi tương tự khác nhau và trong các hướng dẫn tôi đã tìm kiếm. Có ai biết tôi đang làm gì sai không? Tại sao tôi vẫn nhận được lỗi Gradle Wrapper?

Câu trả lời:


246

Tôi vừa trải qua vấn đề tương tự.

Đây có thể là một sự tắc nghẽn trong các hướng dẫn về cách cài đặt (hoặc nâng cấp) Android Studio với tất cả các Công cụ SDK mà cả bạn và tôi đã bỏ lỡ hoặc có thể là một lỗi được tạo bởi một bản phát hành mới của Studio không tuân theo cùng một quy ước tệp như Các phiên bản cũ hơn. Tôi nghiêng về phía sau vì nhiều bài viết SO về chủ đề này dường như trỏ đến ANDROID_PATH với thư mục có tên android-sdk không xuất hiện trong phiên bản mới nhất (2.3.0.8).

Dường như có một cách giải quyết , mà tôi chỉ cần làm việc trên máy của mình. Đây là những gì tôi đã làm:

  • Tải xuống tools_r25.2.3-windows.zip từ Tải xuống Android .
  • Trích xuất zip trên máy tính để bàn
  • Đã thay thế C: \ Users \ username \ AppData \ Local \ Android \ sdk \ tools với các công cụ thư mục con được trích xuất /
  • Trong thư mục dự án:

    Nền tảng $ cordova loại bỏ nền tảng Android
    $ Cordova thêm Android

Bạn cũng có thể cần phải loại bỏ node_modules trong Android. Hy vọng điều này sẽ giúp.


1
THX, tôi đã bị mắc kẹt trong cùng một hiện tượng, bây giờ đã phục hồi môi trường của tôi bằng cách khắc phục của bạn. Tôi nghĩ đó là lỗi của Google, vì vậy các nhà phát triển cordova sẽ đợi bản cập nhật sửa lỗi tiếp theo.
HirofumiTamori

1
Có chính xác cùng một vấn đề. Đã hạ cấp "Công cụ SDK Android" 25.2.3 đã khắc phục sự cố. Có lẽ chúng ta nên chờ cập nhật từ nhóm Google / Android.
gregor

3
Chỉ thay thế thư mục công cụ đã giúp tôi. Không phải loại bỏ và thêm nền tảng.
vahissan

16
Rất hữu ích, đối với Mac, bạn có thể thực hiện tương tự ngoại trừ việc tải xuống các công cụ cho Windows, bạn tải xuống từ Mac theo địa chỉ này: dl.google.com/android/reposeective/tools_r25.2.3-macosx.zip
O. Edholm

14
Tập tin gốc có thể được truy cập trực tiếp tại đây: dl.google.com.vn/android/reposeective/ Từ
Advocate của Devil

254

Chỉnh sửa 3:

Cordova Android 6.2.2 đã được phát hành và nó hoàn toàn tương thích với các công cụ SDK 26.0.x và 25.3.1. Sử dụng phiên bản này:

cordova platform update android@6.2.2

hoặc là

cordova platform rm android
cordova platform add android@6.2.2

Chỉnh sửa 2:

Đã có một bản phát hành công cụ SDK Android khác (26.0.x) không tương thích hoàn toàn với cordova-android 6.2.1.

Chỉnh sửa: Cordova Android 6.2.1 đã được phát hành và hiện đã tương thích với SDK Android mới nhất.

Bạn có thể cập nhật nền tảng Android không tương thích hiện tại của mình với cordova platform update android@6.2.1

Hoặc bạn có thể xóa nền tảng hiện có và thêm nền tảng mới (sẽ xóa mọi thay đổi thủ công bạn đã thực hiện trong yourProject/platforms/android/thư mục)

cordova platform rm android cordova platform add android@6.2.1

Bạn phải chỉ định phiên bản vì CLI hiện tại cài đặt 6.1.x theo mặc định.

Câu trả lời cũ:

Đáng buồn là các công cụ SDK Android 25.3.1 đã phá vỡ cordova-android 6.1.x

Đối với những người không muốn hạ cấp các công cụ SDK, bạn có thể cài đặt cordova-android từ url github vì hầu hết các sự cố đã được khắc phục trên nhánh chính.

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


7
Bản phát hành hiện đã có trên kho npm, mặc dù nó dường như chưa được sử dụng tự động. cordova platform add android@6.2.0công trình, mặc dù.
Jules

3
@chrjs cordova platform add android@6.2.3hiện đã an toàn để sử dụng, bạn không cần thêm phiên bản github và nó có thể không ổn định, sử dụng tốt hơn 6.2.3 như phiên bản mới nhất được phát hành
jcesarmobile

1
Tôi đang dùng Cordova 7.0.1 và tôi đang gặp lỗi: Error: Could not find gradle wrapper within Android SDK. Might need to update your Android SDK.Có lời khuyên nào không?
Ethan Keller

1
@EthanKeller nhưng bạn đã thêm nền tảng Android trước đây chưa? Nếu đó là trường hợp, loại bỏ nó cordova platform rm androidlại thêm nócordova platform add android
jcesarmobile

1
Tại sao không chỉ android@latest?
Seanny123

56

(Về cơ bản những gì @ user3464070 đã nói)

Đối với máy 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
Dòng đầu tiên có thể cd $ANDROID_HOMEcho đơn giản?
toxaq

1
@toxaq có thể nhưng $ANDROID_HOMEkhông được xác định trên máy của tôi.
basecode 17/03/2017

2
cảm ơn nhiều. các lệnh của bạn + sử dụng android@6.1.2 hoạt động như một bùa mê trên mac!
David Dal Busco

43
  1. Nếu bạn đã cài đặt android studio trong hệ thống của mình, thì hãy sao chép thư mục mẫu từ C:\Program Files\Android\Android Studio\plugins\android\lib\templates
  2. Dán nó vào thư mục C:\Users\<user-name>\AppData\Local\Android\sdk\tools
  3. Chạy lệnh: ionic build android

Tất cả các tệp jar cần thiết sẽ được tải xuống và tệp apk cho ứng dụng sẽ được tạo.

Lưu ý: Đặt biến môi trường thành C:\Users\<user-name>\AppData\Local\Android\sdk\tools. Đồng thời đặt tên người dùng cho tên người dùng hiện tại của bạn.


1
Giải pháp đơn giản và dễ dàng!
Jari Pekkala

1
Đây là một giải pháp dễ dàng và tiết kiệm cho những ai có Android Studio.
Johnson

1
nó thực sự hiệu quả với tôi .. khi các giải pháp khác thì không. Quá tệ, dường như chủ yếu phụ thuộc vào các phiên bản studio của cordova / ionic / sdk / android
Kaddath

1
Kể từ năm 2018 và làm việc với 2 phiên bản khác nhau của Cordova, tôi có thể bảo đảm cho giải pháp này là một phiên bản hoạt động và không cần tải xuống thêm.
ravemir

26

Đối với Linux thậm chí còn có một giải pháp tốt hơn một chút.

Điều hướng đến https://developer.android.com/studio/index.html#doads

và tải xuống tệp zip công cụ dòng lệnh (dưới cùng của trang) cho linux. Trích xuất chúng vào thư mục .... / Android / Sdk / của bạn để bạn ghi đè / mở rộng thư mục công cụ của bạn. Bây giờ mọi thứ hoạt động tốt.


Vâng, RJ đã trả lời cách giải quyết của Windows cho vấn đề này và câu trả lời của bạn là giải pháp Linux. Hữu ích cho những người không biết cách giải quyết Windows ' C:\Users\username\AppData\Local\Android\sdk\toolsvới Ubuntu/home/user/Android/Sdk
rbenvenuto

@rbenvenuto Các câu trả lời về cơ bản là giống nhau. Tải xuống các công cụ, giải nén thư mục zip và lưu nội dung được trích xuất vào thư mục công cụ idk của bạn. Làm thế nào khó có thể hiểu được? Tôi đang sử dụng máy Mac và sẽ lưu vào ~ / Library / Android / sdk / tools Tôi có cần lấy cắp phiếu bầu của ai đó để giải thích điều tương tự bằng các từ khác nhau không?
iOSAndroidWindowsMobileAppsDev

4
@Anon Yep, không thể phủ nhận câu trả lời của anh ấy khá giống với lời giải thích với các từ khác nhau. Nhưng tôi có thể thấy một số giá trị trong đó cho những người mới bắt đầu gặp khó khăn như tôi lol
rbenvenuto

các phiên bản trước không còn khả dụng nữa trong developer.android.com
Ferdinand.kraft

21

Đối với bất cứ ai vẫn gặp phải vấn đề này, điều này có hiệu quả với tôi:

    cordova platform update android@latest

sau đó xây dựng và nó sẽ tự động tải xuống phiên bản lớp mới nhất và sẽ hoạt động


2
+1 Điều này hoạt động như @ tháng 8 năm 2017 và cập nhật cho bạn cordova-android@6.2.3. Câu trả lời cũ hơn có thể hoặc không thể làm việc hoặc chính xác nữa. Tình trạng này liên tục thay đổi và trực tiếp gây ra bởi Android SDK 25.3.1 giảm hỗ trợ cho nhị phân Android, như được mô tả ở đây: cordova.apache.org/announcements/2017/04/05/ trên
JK.

1
Vẫn hoạt động như vào tháng 3 năm 2018. Tôi không thường xuyên tạo các dự án cordova mới, đây là lần đầu tiên kể từ nhận xét trước đây của tôi. Nó có cùng một could not find gradle wrapperlỗi. Tôi đã phải tìm kiếm các giải pháp về SO một lần nữa. Đây là một sửa chữa cho mỗi dự án, phải được áp dụng cho mọi dự án cordova mới mà bạn tạo. Sẽ upvote hai lần nếu tôi có thể, đây là lần thứ 2 câu trả lời này đã cứu tôi bây giờ.
JK.

14

Không cần hạ cấp Công cụ Android. Trên Windows, Gradle chuyển từ:

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

đến:

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

Vì vậy, bạn chỉ cần điều chỉnh đường dẫn của mình để nó trỏ đến đúng thư mục.


6
Tôi đã làm ngược lại, di chuyển trình bao bọc đến AppData của tôi và nó hoạt động tốt! Cảm ơn ^ _ ^
Nicolas_LeBot


Sao chép nội dung của thư mục trình bao bọc từ đường dẫn này C: \ Program Files \ Android \ Android Studio \ plugins \ android \ lib \ samples \ gradle \ Wrapper sang C: / Android / Sdk / tools / samples / gradle / Wrapper
lấy cảm

9

nếu bạn có lỗi này khi bạn ionic run android --device

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

7

Chỉ cần sao chép mọi thứ từ cài đặt Android Studio điển hình. Từ: D: \ sw \ dev \ android \ studio \ plugins \ android \ lib \ samples

(toàn bộ thư mục mẫu)

Đến:

D: \ sw \ dev \ android \ sdk \ tools

Đã thử nghiệm với ion xây dựng Android


Đây là giải pháp trong trường hợp của tôi. Sau giải pháp này, bạn có thể nhận được thông báo giấy phép. Xem stackoverflow.com/questions / 40383323 / từ
JonathanRomer

6

Sự cố này xảy ra khi bạn không có trình bao bọc lớp vào các công cụ SDK của mình.

Giống như các phản hồi trước đây đã nói, bạn có thể cập nhật lên cordova-androidphiên bản mới nhất (nó hoạt động), nhưng nếu bạn muốn tiếp tục làm việc với cordova-cli@6.4.0cordova-android@6.0.0, chỉ cần sao chép thư mục từ 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

Trong trường hợp của tôi, tôi đang sử dụng cordova-plugin-fcmvà nó đã được thử nghiệm với phiên bản cũ của cordova-android, vì vậy tôi không thể sử dụng cordova-android@2.x(chưa).


5

Đối với Linux, chỉ cần tạo một liên kết tượng trưng, ​​như thế này:

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

Không kiểm tra giải pháp liên kết tượng trưng, ​​nhưng trên hệ thống của tôi /opt/android-studio/plugins/android/lib/templates/gradle/wrapper/gradlewkhông có quyền thực thi. Hãy chắc chắn để chmod nó trước khi thử.
Ferdinand.kraft

Tôi không có mẫu / thư mục dưới sdk/tools.
PlayHardGoPro

5

Trên linux (Ubuntu trong trường hợp của tôi) chỉ cần cài đặt gradle:

sudo apt-get install gradle

Chỉnh sửa: Có vẻ như mặc dù ub Ubuntu repo chỉ có cấp 2.10, cho các phiên bản mới hơn: https://www.vultr.com/docs/how-to-install-gradle-on-ub Ubuntu-16-10


1
Không có giải pháp nào ở trên làm việc cho tôi. Tôi đang sử dụng ver mới nhất của cordova 7.0.1. Cài đặt gradle từ ubfox repo đã giải quyết vấn đề. Năm 2017 và Cordova vẫn chưa biết sử dụng lớp dựng sẵn của studio Android
sziraqui

3

Mới gần đây, tôi cũng gặp phải vấn đề tương tự, và sau khi tôi làm điều này, nó hoạt động:

Tôi đã chỉnh sửa tập tin trong /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

Thông tin khác (chỉ trong trường hợp):

Không hoàn toàn chắc chắn về m2repositorymột phần, trong lần thử đầu tiên, nó đã vượt qua grandle nhưng có một lỗi khác (gradlew-lệnh-fail-with-exit-code-

  1. Tôi kiểm tra xem trong studio android có hoạt động không và nó không hoạt động, tôi thử kích hoạt nó và khi tôi thử lại (Cordova build Android), nó có tải xuống một vài tệp khác, có thể từ kho lưu trữ không? Và khi tôi xóa đường dẫn, nó vẫn hoạt động. (cũng nhờ mẫu Marcin Orleansowski để tôi có thể hiểu về đường dẫn xuất khẩu tốt hơn).

Tôi sử dụng:

  • Linux Mint Serena
  • nút: v6.10.3
  • npm: 3.10.10
  • Cordova: 7.0.0
  • Studio Android: 2.3.1
  • Công cụ nền tảng SDK Android: 25.0.5
  • Công cụ SDK Android: 26.0.2

Hy vọng nó có thể giúp bất cứ ai có thể có cùng vấn đề như tôi và cũng cần điều này.

Cảm ơn




2

Không có giải pháp nào làm việc cho tôi như ngày hôm nay. Tình hình của tôi là tôi đã cập nhật studio Android của mình. Điều phổ biến nhất để thay thế thư mục công cụ bằng thư mục mới nhất sẽ không phù hợp với tôi. Nguyên vẹn là không cần thiết trong một số trường hợp.

npm update -g cordova đã lừa tôi

Sau đó, tôi loại bỏ nền tảng và thêm nó một lần nữa.

ionic platform remove android

ionic platform add android

Điều này làm việc cho tôi trong Ionic. Tôi chắc chắn cordova platform remove/add androidsẽ làm những thứ tương tự. Không được thử nghiệm mặc dù.

Hoạt động trở lại !


2

Sau khi thử mọi thứ ở đây hai lần theo thứ tự khác nhau, tôi đã cài đặt lại mọi thứ và trước khi thực hiện, cordova platform add androidtôi đã đi templates/gradlevà chạy gradlew.bat. Sau khi hoàn thành, tôi đã có thể thêm nền tảng Android mà không gặp vấn đề gì.


1

Điều này đã giải quyết nó cho tôi:

cordova platform update android@6.1.2

0

Chạy:

cordova platform update android@6.1.2

Và đảm bảo rằng môi trường Android Studio và Android Studio có thể điều chỉnh biến đổi theo cùng một vị trí.

Tôi khắc phục điều này bằng cách sao chép Android Studio từ:

D:\Program Files\Android

đến

C:\Program Files\Android

0

Sau khi nâng cấp cordova lên 7.0.x, đường dẫn lớp đã được thay đổi như đã thảo luận ở trên. Để làm cho nó hoạt động trước khi sửa lỗi chính thức, chỉ cần cài đặt thủ công lớp và đặt nó trong Môi trường của bạn.

  1. Truy cập https://gradle.org/install tải xuống các gói nhị phân
  2. Giải nén nó, ghi nhớ đường dẫn, ví dụ: My one at: E: \ Gradle
  3. Đặt các biến môi trường, như trên Windows thêm E: \ Gradle \ bin

Đó là nó.


0

Sau khi gặp vấn đề tương tự, chỉ cần đổi tên tên gói trong config.xml, id thuộc tính có tên không có "-" bên trong ...

I E

com.web-projet.appname

đổi tên thành:

com.webprojet.appname

và tất cả đã đúng ...

Nếu nó giúp.


0

Cài đặt cordova phiên bản 5.0 giúp tôi:

npm install -g cordova@5.0

0

Tôi đang sử dụng Ubuntu 16.04 và đối với tôi, nó hoạt động chỉ bằng cách sử dụng hai lệnh: -

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

-1

Giải pháp đơn giản và dễ dàng cho MAC

Vấn đề của tôi là

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

Giải pháp

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 xây dựng Android một lần nữa làm việc bây giờ !!!


1
Bạn có giải thích điều này? Tại sao xảy ra?
wilfredonoyola
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.