Lỗi “Không thể cài đặt các gói Android SDK sau đây vì một số giấy phép không được chấp nhận”


143

Tôi gặp lỗi này trong jitpack, tôi đã thử mọi thứ trên internet. Dưới đây là lỗi của tôi

Failed to install the following Android SDK packages as some licences have not been accepted.
     platforms;android-26 Android SDK Platform 26
     build-tools;28.0.3 Android SDK Build-Tools 28.0.3
  To build this project, accept the SDK license agreements and install the missing components using the Android Studio SDK Manager.

Và khi tôi chạy ./sdkmanager --licenses

 All SDK package licenses accepted.======] 100% Computing updates...             

Sử dụng sudo với lệnh trên cho

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
    at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
    at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
    at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
    ... 5 more

nhật ký lỗi bổ sung

File /opt/android-sdk-linux/.android/repositories.cfg could not be loaded.
Checking the license for package Android SDK Build-Tools 28.0.3 in /opt/android-sdk-linux/licenses
Warning: License for package Android SDK Build-Tools 28.0.3 not accepted.
Checking the license for package Android SDK Platform 26 in /opt/android-sdk-linux/licenses
Warning: License for package Android SDK Platform 26 not accepted.

Tôi không biết tại sao nó lại kiểm tra giấy phép ở đó khi vị trí sdk của tôi khác


1
Có vẻ như có một giải pháp hơi điên rồ ở đây , nó có thể hoạt động!
Jake Lee

2
Tôi đã từng gặp vấn đề tương tự. Tôi đã tải xuống các SDK có liên quan thông qua Android Studio và không lúc nào nó hỏi tôi về bất kỳ giấy phép nào. Một vấn đề không cần thiết khác.
Steve Smith

Câu trả lời:


270

Bạn cần chấp nhận các giấy phép trước khi xây dựng.

Theo tài liệu SDK Android, bạn có thể sử dụng lệnh sau tùy thuộc vào vị trí sdkmanager: Tuy nhiên, --licensestùy chọn Docs on dường như bị thiếu.

yes | sdkmanager --licenses

Bản phân phối GNU / Linux:

yes | ~/Android/Sdk/tools/bin/sdkmanager --licenses

hệ điều hành Mac:

export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home
yes | ~/Library/Android/sdk/tools/bin/sdkmanager --licenses

Các cửa sổ:

%ANDROID_HOME%/tools/bin/sdkmanager --licenses

41
Tôi gặp lỗi nàyException in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
HendraWD Ngày

5
@HendraWD Nếu bạn đã cài đặt thêm Java trong máy tính của mình (Lưu ý: Android Studio có Java riêng), Bạn nên đảm bảo rằng chúng có cùng phiên bản. Nếu không, nó có thể xảy ra lỗi này. Tôi vừa giải quyết nó bằng cách đặt đường dẫn "Android Studio / jre" thành JAVA_HOME.
Licat Julius,

8
Đối với một máy Mac mà không cần cài đặt Java, tôi phải export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home, cd ~/Library/Android/sdk/tools/bin, ./sdkmanager --licenses.
Graham Perks

1
FWIW: Có vẻ như chỉ JDK <11 mới được hỗ trợ, và khá thú vị là Ubuntu 18.04 đi kèm với openjdk 11tư cách là jdk mặc định. Sau khi đảm bảo rằng tôi đang sử dụng phiên bản java được hỗ trợ, thay vào đó, tôi nhận được Error: Could not create the Java Virtual Machinevà tôi thấy rằng tôi phải gọi sdkmanagerbằng sudo.
JHH

Tôi đã phải chạy lệnh với sudo trong ubuntu, có | sudo ~ / Android / Sdk / tools / bin / sdkmanager --licenses
mramsath

50

trong hệ điều hành Windows đi đến đường dẫn sdkmanager của bạn sau đó thực thi

./sdkmanager.bat --licenses

Bạn có thể tìm thấy sdkmanager của mình trong C:\Users\USER\AppData\Local\Android\Sdk\tools\bin

Để tìm đường dẫn SDK Android thực tế của bạn, hãy làm theo vùng được đánh dấu màu đỏ của hình ảnh bên dưới

nhập mô tả hình ảnh ở đây


1
Sau đó, bạn có thể xem xét từng giấy phép và chấp nhận chúng cho phù hợp thông qua cùng một cửa sổ bash (Windows CMD gây ra lỗi. Sử dụng git bash hoặc khác thay vì Windows CMD)
Tharusha

45

Nếu bạn đang làm việc với Flutter thì lệnh này chắc chắn sẽ phù hợp với bạn.

flutter doctor --android-licenses

cảm ơn sự tiết kiệm thời gian của bạn
krissanawat

23

Trong Android Studio, chuyển đến Công cụ -> Trình quản lý SDK .

Chuyển đến tab Công cụ SDK .

Chọn Công cụ dòng lệnh SDK Android (mới nhất) và tải xuống bằng cách nhấn Áp dụng .

nhập mô tả hình ảnh ở đây

Trên Windows , bạn có thể tìm thấy sdkmanager.bat tại

C: \ Users \ [your_user] \ AppData \ Local \ Android \ Sdk \ cmdline-tools \ new \ bin

nhập mô tả hình ảnh ở đây


Điều này đã giúp
Sachin K

Điều này đã khắc phục sự cố của tôi!
douglasrcjames

18

Bạn có thể chấp nhận các thỏa thuận cấp phép của các SDK đã nêu bằng cách đi tới Trình quản lý SDK (Cài đặt> [Tìm kiếm Android SDK]), sau đó tìm các gói được ghi chú trong thông báo lỗi và tìm chúng ở đó. Rất có thể, bạn sẽ tìm thấy các SDK chưa được cài đặt đầy đủ và việc cài đặt chúng sẽ yêu cầu bạn chấp nhận thỏa thuận cấp phép.nhập mô tả hình ảnh ở đây


1
Cảm ơn! Nó đã giúp đỡ.
Naseem Ahamed

16

Đối với Windows, tôi chạy phần sau vì platform;android-28lỗi

C:\Android\sdk\tools\bin> .\sdkmanager.bat "platforms;android-28"

và sau đó đồng ý với giấy phép


1
Tôi đã sử dụng. \ sdkmanager.bat --licenses nhưng không mới mà tôi phải sử dụng "\" thay vì "/", cảm ơn bạn đã làm rõ.
Hamza

chạy dấu nhắc lệnh ở chế độ quản trị viên nếu không nó sẽ không hoạt động
Shashank

13

sử dụng android-28với build-toolstại phiên bản 28.0.3; hoặc build-toolstại phiên bản 26.0.3.

hoặc thử cái này: yes | sudo sdkmanager --licenses


2
Trên windows, bạn có thể vừa chạy sdkmanager.bat --licensesvừa gõ ytất cả các câu hỏi.
Agung Santoso

12

MacOS Catalina

Bước 1: Thay đổi tùy chọn Android Studio

  1. Mở Android Studio của bạn
  2. Nhấn Command + hoặc đi tới AppBar Android Studio trên cùng bên trái > Tùy chọn .
  3. Từ Ngăn bên trái, chọn Giao diện> Cài đặt hệ thống> Android SDK
  4. Chọn Công cụ SDK bên cạnh Nền tảng SDK và trong Vị trí SDK Android
  5. Đánh dấu chọn Công cụ dòng lệnh Android SDK (mới nhất) và Nhấn nút OK .
  6. Chờ cài đặt xong

Định vị tùy chọn của Android Studio

Tùy chọn Android Studio

Bước 2 (Đối với người dùng Flutter):

  1. Đi tới Terminal và chạy lệnh sau

flutter doctor --android-licenses

Bước 2 (Đối với người dùng Android):

  1. Đi tới Terminal và chạy lệnh sau

export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home

yes | ~/Library/Android/sdk/tools/bin/sdkmanager --licenses


Cảm ơn: Rất giống trên Centos 7
poleguy

11

Điều này phù hợp với tôi:

yes | ./sdkmanager "platforms;android-28"

yes | ./sdkmanager "build-tools;28.0.3"

yes | ./sdkmanager --licenses


1
Hoạt động tốt đối với tôi (Ubuntu 19.10, IntelliJ 2019.2.4). Tôi chỉ phải cài đặt OpenJDK bởi vì tôi chỉ có JDK nhúng, không thể truy cập từ thiết bị đầu cuốisudo apt install openjdk-8-jdk
56ka


4

Đối với người dùng Windows Bạn có thể chấp nhận tất cả các điều khoản giấy phép tại đây. Dán bên dưới vào thiết bị đầu cuối của bạn

C:/Users/USERNAME/AppData/Local/Android/Sdk/tools/bin/sdkmanager.bat --licenses

PS: USERNAME là tên người dùng PC của bạn


3

đây là lệnh

Tôi đã sử dụng như sau:

  • đặt tuyến sdk> AppData \ Local \ Android \ Sdk \ tools \ bin>
  • chạy. \ sdkmanager.bat --licenses

3

Bạn cũng có thể cài đặt nó thông qua Trình quản lý SDK trực tiếp trong Android Studio:

Công cụ -> Trình quản lý SDK -> Nền tảng Sdk và ở đó bạn cài đặt nó trực tiếp và bạn được nhắc chấp nhận thỏa thuận cấp phép


2

Trong nháy mắt, bạn có thể chạy bác sĩ - giấy phép Android và nhập y vào tất cả các giấy phép


2

trong hệ điều hành Windows đi đến thư mục đường dẫn sdkmanager của bạn trong cmd

Bạn có thể tìm thấy sdkmanager của mình trong C: \ Users \ USER \ AppData \ Local \ Android \ Sdk \ tools \ bin

sau đó thực hiện lệnh tiếp theo:

sdkmanager --licenses

sau đó nó sẽ yêu cầu chấp nhận thỏa thuận cấp phép nhiều lần rồi chấp nhận tất cả bằng cách chỉ cần gõ y trên cmd


1

Tôi nhận thấy rằng trong Windows, bảng điều khiển của bạn phải được mở với tư cách quản trị viên. Nếu không, nó sẽ không coi bạn đã chấp nhận giấy phép.


1

Trong trường hợp của tôi, sự cố này xảy ra với Flagship bởi vì, Điều đầu tiên tôi đã cài đặt android studio với gói mặc định và sau đó cài đặt Flaming. Một điều bạn có thể nhận thấy ở đây là studio android mặc định không cần chấp nhận bất kỳ giấy phép nào vì vậy để khắc phục vấn đề này, chúng tôi cần chấp nhận tất cả các giấy phép theo cách thủ công.

Đi tới sdk>>tools>>binthư mục và sau đó thực hiện lệnh dưới đây để chấp nhận tất cả các giấy phép.

. \ sdkmanager.bat --licenses


1

Trên Mac OS 10.15.1, tôi gặp lỗi tương tự ngay cả khi đã chấp nhận tất cả các giấy phép bằng cách chạy. sdkmanager --licensesNó hoạt động sau khi tôi cập nhật cấu hình đường dẫn ANDROID_HOME trong ~ / .bash_profile thành như sau

export ANDROID_HOME=/Users/your_username/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
export PATH=$PATH:~/Library/Android/sdk/platform-tools

Và tải lại ~ / .bash_profile

source ~/.bash_profile 

1

Để thêm vào câu trả lời, bạn cũng có thể thay đổi thành thư mục sdkmanager và trong một trình bao con và chấp nhận giấy phép ở đó

(
    cd /home/user/android-sdk-linux/tools/bin
    yes | ./sdkmanager --licenses
)

1

Tôi đã gặp một số vấn đề và tôi là người mới sử dụng studio android. Nếu ban đầu bạn đang làm việc với react native và tôi đang cố gắng giải nén một apk từ nó.

Tôi đã giải quyết vấn đề này bằng cách truy cập trình quản lý SDK trong Android Studio và cài đặt API Cấp 28.

Nó đã làm việc cho tôi.


1

Tôi vừa thực hiện xong Tệp -> Không hợp lệ bộ nhớ đệm và khởi động lại Sau đó cài đặt các gói bị thiếu. Đã làm cho tôi.


1

Các câu trả lời chỉ liên kết không được coi là thực hành tốt. Cân nhắc thêm các đoạn trích hoặc trích dẫn từ liên kết để giúp giải thích cách người dùng có thể giải quyết vấn đề của họ. Vui lòng xem stackoverflow.com/help/how-to-answer
Suit Boy Apps

1

MacOs Catalina

Chỉ cần cài đặt các công cụ theo hình ảnh đính kèm trong AndroidSDK >> SDK Tools là nó sẽ hoạt động. Đối với tôi "Thư viện cấp phép của Google Play" bị thiếu.

nhập mô tả hình ảnh ở đây


1

Tôi đã thử nhiều giải pháp nhưng không hiệu quả với tôi. Giải pháp dưới đây phù hợp với tôi.

định vị tệp sdkmanager trong Android SDK.

Trong trường hợp của tôi: ~ / Android / Sdk / tools / bin

đi đến con đường đó: cd ~/Android/Sdk/tools/bin

Chấp nhận giấy phép theo cách thủ công: ./sdkmanager --licenses Nhập Có hoặc y


thêm tiêu đề thích hợp
swan

1

Nếu bạn đang sử dụng Flagship, hãy làm theo các bước sau

1.open the command prompt

Sau đó, lệnh sau

2.C:\Users\niroshan>flutter doctor

Và bạn sẽ thấy các vấn đề như sau

Doctor summary (to see all details, run flutter doctor -v):
[] Flutter (Channel stable, 1.22.2, on Microsoft Windows [Version 10.0.17763.1339], locale en-US)

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    X Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses
[!] Android Studio (version 4.1.0)
    X Flutter plugin not installed; this adds Flutter specific functionality.
    X Dart plugin not installed; this adds Dart specific functionality.
[] VS Code (version 1.50.1)
[!] Connected device
    ! No devices available

! Doctor found issues in 3 categories.

Trên thực tế, những gì bạn phải chạy là lệnh dưới đây

C:\Users\niroshan>flutter doctor --android-licenses

Hoạt động như một sự quyến rũ!
abrsh

0

Đối với mac, chỉ cần thử điều này và sẽ hoạt động:

Mở thiết bị đầu cuối và đi đến đường dẫn bên dưới

cd /Users/anand/Library/Android/sdk
Cd tools/bin

Sau đó gõ lệnh dưới đây

yes | ./sdkmanager --licenses && ./sdkmanager --update

Được sử dụng lệnh bên dưới để cài đặt sdk 8 trong nền tảng cordova cordova thêm android@8.0.0
Anand_5050

0

Điều này phù hợp với tôi:

  1. Mở Android Studio

  2. Mở dự án Flutter của bạn

  3. Mở các công cụ trong Android Studio sẽ ở trên cùng. Chọn trình quản lý SDK, sau đó đánh dấu vào:
    Android 9.0,
    Android 8.1,
    Android 8.0.
    Tải xuống và cài đặt, sau đó khởi động lại Android Studio


0

Đã thử điều này trên Android Studio và nó phù hợp với tôi:

Công cụ> Trình quản lý SDK (Đảm bảo chọn Hiển thị Gói bên dưới)

Nền tảng SDK> Hiển thị gói> Android - 28 Nền tảng SDK> Hiển thị gói> Android - 28

Công cụ SDK> Hiển thị gói> 28.0.3 Công cụ SDK> Hiển thị gói> 28.0.3


0

Trên Android Studio 4.1 (có thể hoạt động trên phiên bản cũ hơn), hãy chuyển đến Trình quản lý SDK ( Tools> SDK Manager), sau đó chọn nền tảng (trong trường hợp này là Android 8.0 (Oreo) API 26). Nhấp vào Apply(xem ảnh chụp màn hình bên dưới)

Ảnh chụp màn hình menu SDK Android

Bây giờ, bạn sẽ chấp nhận giấy phép của SDK mới và tải xuống nền tảng.


-2

Nếu tất cả những điều trên không hoạt động, giải pháp tốt hơn là: cài đặt lại Android SDK

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.