Tự động chấp nhận tất cả các giấy phép SDK

468
nsvir 2016-06-29 23:56.

Kể từ plugin android gradle 2.2-alpha4 :

Gradle sẽ cố gắng tải xuống các gói SDK bị thiếu mà một dự án phụ thuộc vào

Điều đó thật tuyệt vời và được biết là một dự án của JakeWharton .

Tuy nhiên, để tải xuống thư viện SDK, bạn cần phải: chấp nhận các thỏa thuận cấp phép hoặc gradle cho bạn biết:

Bạn chưa chấp nhận các thỏa thuận cấp phép của các thành phần SDK sau: [Android SDK Build-Tools 24, Android SDK Platform 24]. Trước khi xây dựng dự án của mình, bạn cần chấp nhận các thỏa thuận cấp phép và hoàn tất cài đặt các thành phần còn thiếu bằng Trình quản lý SDK Android Studio. Ngoài ra, để tìm hiểu cách chuyển các thỏa thuận cấp phép từ máy trạm này sang máy trạm khác, hãy truy cập http://d.android.com/r/studio-ui/export-licenses.html

Và đây là một vấn đề vì tôi rất thích cài đặt tất cả các phụ thuộc sdk trong khi thực hiện a gradle build.

Tôi đang tìm giải pháp để tự động chấp nhận tất cả các giấy phép. Có thể là một tập lệnh gradle? Bạn có bất cứ ý tưởng ?

Cảm ơn!

[BIÊN TẬP]

Một giải pháp là thực hiện:

android update sdk --no-ui --filter build-tools-24.0.0,android-24,extra-android-m2repository

Và cài đặt nó theo cách thủ công, nhưng mục đích của tính năng mới của gradle để làm điều đó.

[CHỈNH SỬA 2]

Một giải pháp tốt hơn là sử dụng sdkmananger:

yes | sdkmanager --licenses

30 answers

402
nsvir 2017-08-21 03:33.

AndroidSDK cuối cùng có thể chấp nhận giấy phép.

yes | sdkmanager --licenses

BIÊN TẬP:

như đã chỉ ra trong nhận xét của @MoOx, trên macOS, bạn có thể làm

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

như đã chỉ ra trong các nhận xét của @pho, @mikebridge và @ Noitidart trên Windows, bạn có thể làm

cmd.exe /C"%ANDROID_HOME%\tools\bin\sdkmanager.bat --licenses"

hãy chắc chắn cài đặt java trước

179
Dori 2016-07-15 08:26.

Tôi đã gặp phải điều này với alpha5bản xem trước.

Jake Wharton đã chỉ ra cho tôi rằng bạn hiện có thể sử dụng

mkdir -p "$ANDROID_SDK/licenses"
echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_SDK/licenses/android-sdk-license"
echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "$ANDROID_SDK/licenses/android-sdk-preview-license"

để tạo lại $ANDROID_HOME/licensethư mục hiện tại trên máy của bạn. Điều này sẽ có kết quả tương tự như quy trình được nêu trong liên kết của thông báo lỗi ( http://tools.android.com/tech-docs/new-build-system/license ).

Các băm là sha1 của văn bản giấy phép, mà tôi tưởng tượng sẽ được cập nhật định kỳ, vì vậy mã này sẽ chỉ hoạt động trong thời gian dài :)

Và cài đặt nó theo cách thủ công, nhưng mục đích của tính năng mới của gradle để làm điều đó.

Lúc đầu, tôi rất ngạc nhiên rằng điều này không hoạt động tốt, ngay cả khi tôi đã chấp nhận giấy phép cho các thành phần được đặt tên thông qua androidcông cụ, nhưng tôi đã chỉ ra cho tôi trình quản lý SDK bên trong AS tạo /licensesthư mục.

Tôi đoán rằng các công cụ chính thức sẽ không muốn bỏ qua bước này vì lý do pháp lý.

Đọc lại các ghi chú phát hành mà nó nói

Tự động tải xuống SDK: Gradle sẽ cố gắng tải xuống các gói SDK bị thiếu mà một dự án phụ thuộc vào.

Điều đó không có nghĩa là nó sẽ hoạt động nếu bạn chưa cài đặt các công cụ android và đã chấp nhận (các) giấy phép mới nhất.

CHỈNH SỬA: Nói vậy, nó vẫn không hoạt động trên hộp gubuntu thử nghiệm của tôi cho đến khi tôi liên kết SDK với AS. CI hoạt động tốt mặc dù - không chắc chắn sự khác biệt là gì ...

138
bgies 2017-03-27 20:53.

Đối với Android Studio (2.3) mới nhất, cách tốt nhất để cập nhật / chấp nhận tất cả các giấy phép là chạy:

cd $ANDROID_HOME
tools/bin/sdkmanager --licenses

bạn vẫn có thể cần sao chép các tệp giấy phép sang các vị trí khác dựa trên thiết lập của mình.

57
A. Rager 2017-02-09 13:45.

Đối với sdkmanagertiện ích mới :

yes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;24.0.3"

Có một chút độ trễ giữa các yesses, vì vậy lệnh có thể treo khi giấy phép hiển thị trong một thời gian, nhưng nó không cần sự can thiệp của con người.

43
raven 2016-12-30 00:43.

Nếu bạn đang sử dụng Jenkins, bạn có thể sử dụng tập lệnh bash sau làm bước đầu tiên trong quá trình xây dựng:

(while sleep 3; do echo "y"; done) | $ANDROID_HOME/tools/android update sdk -u

Điều này tất nhiên sẽ cài đặt TẤT CẢ các bản cập nhật có sẵn, nhưng nó sẽ giúp bạn tiết kiệm thời gian nếu bạn có thể dành dung lượng đĩa. Ngủ là để tránh dòng đọc bị hỏng trong chương trình cài đặt, vì "yes" không hoạt động đúng trong trường hợp này.

CHỈNH SỬA: Bạn cũng cần thêm plugin "Cài đặt điều kiện tiên quyết của dự án Android" trong bước xây dựng để nhận đúng $ ANDROID_HOME nếu bạn đang sử dụng trình quản lý SDK được tích hợp sẵn.

33
Cristian Agudelo 2017-08-14 21:37.

điều này đã giải quyết được lỗi của tôi

echo yes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;25.0.2"
32
not2qubit 2016-11-03 05:12.

Thật không may, cách OP giải quyết ban đầu không phải lúc nào cũng hoạt động. Nếu bạn tìm thấy từ thông báo lỗi phiên bản công cụ xây dựng hiện tại của bạn là gì . Nó có thể là một phiên bản cao hơn của các công cụ xây dựng bị thiếu. Trong trường hợp đó, bạn cần khởi động Trình quản lý SDK theo cách thủ công và thêm các công cụ xây dựng và chấp nhận giấy phép.

Theo hướng dẫn OP, nó trông như sau.

$ ./gradlew build

 
Để đáp ứng các cài đặt JVM cho bản dựng này, một JVM mới sẽ được phân nhánh. Vui lòng xem xét sử dụng daemon: https://docs.gradle.org/2.14.1/userguide/gradle_daemon.html.

THẤT ​​BẠI: Xây dựng không thành công với một ngoại lệ.

* Có chuyện gì:
Đã xảy ra sự cố khi định cấu hình dự án ': app'.
> Bạn chưa chấp nhận các thỏa thuận cấp phép của các thành phần SDK sau:
  [Android SDK Build-Tools 24.0.2].

...
THIẾT LẬP THẤT BẠI

LƯU Ý: 2017-04-16

Công androidcụ này hiện đã không được dùng nữa để thay thế cho công cụ mới sdkmanager. Vui lòng xem câu trả lời của Joe Lawson và các bài viết tiếp theo từ tháng 3 (2017) trở đi.

Sau đó điều chỉnh bạn lệnh như sau:

android update sdk --no-ui --filter build-tools-24.0.2,android-24,extra-android-m2repository
Làm mới nguồn:
  Tìm nạp https://dl.google.com/android/repository/addons_list-2.xml
  Xác thực XML
  Phân tích cú pháp XML
  Đã tìm nạp thành công Danh sách Tiện ích bổ sung
  Làm mới nguồn
  Tìm nạp URL: https://dl.google.com/android/repository/repository-11.xml
  Xác thực XML: https://dl.google.com/android/repository/repository-11.xml
  Phân tích cú pháp XML: https://dl.google.com/android/repository/repository-11.xml
...
Lỗi: Bỏ qua bộ lọc gói không xác định 'build-tools-24.0.2'
-------------------------------
Id giấy phép: android-sdk-license-xxxxxxxx
Được sử dụng bởi: 
 - Nền tảng SDK Android 7.0, API 24, bản sửa đổi 2
  - Kho hỗ trợ Android, bản sửa đổi 39
-------------------------------

...

Ngày 20 tháng 11 năm 2015
Bạn có chấp nhận giấy phép 'android-sdk-license-xxxxxxxx' [y / n]: y

Cài đặt Lưu trữ:
  Chuẩn bị cài đặt kho lưu trữ
  Tải xuống Nền tảng SDK Android 7.0, API 24, bản sửa đổi 2
  Cài đặt nền tảng SDK Android 7.0, API 24, bản sửa đổi 2
    Nền tảng SDK đã cài đặt Android 7.0, API 24, bản sửa đổi 296%)
  Tải xuống kho lưu trữ hỗ trợ Android, bản sửa đổi 39
  Cài đặt Kho hỗ trợ Android, bản sửa đổi 39
    Kho lưu trữ hỗ trợ Android đã cài đặt, bản sửa đổi 3999%)
  Làm xong. Đã cài đặt 2 gói.

Chạy lại điều này, vẫn không làm Gradle hài lòng. Vì vậy, chấp nhận thủ công là giải pháp duy nhất cho đến khi ai đó nghĩ ra thứ gì đó tốt hơn. (Vui lòng làm!)

32
Roc Boronat 2017-03-21 00:01.

Chúng tôi nhận thấy cùng một vấn đề khi xây dựng dự án trên Jenkins. Với buildToolsVersion '25.0.2', chúng tôi phải chấp nhận giấy phép trước khi xây dựng. Trong trường hợp của chúng tôi, chúng tôi cần chạy:

yes | sdkmanager --update chấp nhận giấy phép cho chính sdkmanager và sau đó

yes | sdkmanager --licenses chấp nhận các giấy phép mới chưa được chấp nhận trước đây

Hãy nhớ: chạy những dấu phẩy này với cùng một người dùng jenkins. Trong Debian của chúng tôi, người dùng Jenkins chỉ là jenkins. Nói cách khác: làm như vậy rootsẽ tạo ra các giấy phép được chấp nhận root, vì vậy Jenkins sẽ không đọc chúng.

Nhân tiện, chúng tôi tìm thấy sdkmanagertại /var/lib/jenkins/tools/android-sdk/tools/bin. Nếu của bạn không có ở đó, hãy tìm nó vớifind / -name "sdkmanager"

24
Joe Lawson 2017-02-03 08:35.

Công androidcụ này không được dùng nữa và bạn nên sử dụng công cụ sdkmanagerthay thế. sdkmanagercũng ghi tệp giấy phép khi bạn chấp nhận nó lần đầu tiên. Giấy phép thay đổi tùy thuộc vào SDK bạn đang sử dụng, mặc dù lệnh

echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_SDK/licenses/android-sdk-license"

hoạt động trên một số hệ thống. Nó sẽ không hoạt động trên tất cả. Một số cài đặt SDK mong đợi tệp cấp phép kết thúc mà không có dòng mới trong tệp, vì vậy hãy thử thêm a -nvào lệnh echo.

echo -n -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_SDK/licenses/android-sdk-license"

Nếu điều đó không hiệu quả, bạn có thể thử sử dụng mã hóa base64 để thay thế.

Vì vậy, để khám phá giấy phép của tôi:

$> rm ${ANDROID_HOME}/
$> unzip tools_r25.2.3-linux.zip -d ${ANDROID_HOME}
$> ${ANDROID_HOME}/tools/bin/sdkmanager "system-images;android-23;default;x86_64"

Nó sẽ nhắc bạn chấp nhận giấy phép. Sau khi chấp nhận nó sẽ sao chép nó vào ${ANDROID_HOME}/licenses/android-sdk-license. Để đảm bảo bạn luôn nhận được chính xác những gì được sử dụng bằng văn bản base64.

$> base64 ${ANDROID_HOME}/licenses/android-sdk-license
Cjg5MzNiYWQxNjFhZjQxNzhiMTE4NWQxYTM3ZmJmNDFlYTUyNjljNTU=

Sau đó, bạn có thể sử dụng base64 -dchính xác tạo lại tệp.

$> echo Cjg5MzNiYWQxNjFhZjQxNzhiMTE4NWQxYTM3ZmJmNDFlYTUyNjljNTU= | base64 -d > ${ANDROID_HOME}/licenses/android-sdk-license

Bạn có thể xác minh xem tệp được viết có đúng như mong đợi hay không bằng cách chạy sha1sum trên đó.

$> sha1sum ${ANDROID_HOME}/licenses/android-sdk-license
da6b80c9c47b41c0bf7032938e7137a58a3dc249
19
jk2K 2017-10-12 00:49.

nếu bạn chạy yes | sdkmanager --licenses, thì chúng tôi sẽ in nội dung của $ANDROID_HOME/licenses/android-sdk-license,

chúng tôi sẽ nhận được cái này

# cat $ANDROID_HOME/licenses/android-sdk-license

8933bad161af4178b1185d1a37fbf41ea5269c55

d56f5187479451eabf01fb78af6dfcb131a6481e

Đối với GitLab CI, để chấp nhận giấy phép Android SDK Build-Tools 26.0.2, bạn cần chạy điều này

before_script:
  - mkdir -p $ANDROID_HOME/licenses
  - echo "8933bad161af4178b1185d1a37fbf41ea5269c55" > $ANDROID_HOME/licenses/android-sdk-license
  - echo "d56f5187479451eabf01fb78af6dfcb131a6481e" >> $ANDROID_HOME/licenses/android-sdk-license
17
JosephH 2016-11-22 22:19.

Lưu ý rằng đối với bất kỳ ai trả lời câu hỏi này hiện tại, build-tools-24.0.2 (tôi nghĩ) hiện được coi là lỗi thời, vì vậy bạn sẽ nhận được:

 Error: Ignoring unknown package filter 'build-tools-24.0.2'

khi chạy các lệnh khác nhau đã được gợi ý để cài đặt chúng.

Giải pháp là thêm --all:

android update sdk --no-ui --all --filter "build-tools-24.0.2"

Ngoài ra, nếu bạn đang sử dụng Linux 32bit, mọi thứ sau khi xây dựng công cụ 23.0.1 chỉ là 64bit , vì vậy sẽ không chạy. Người dùng 32bit bị mắc kẹt trên 23.0.1, cách duy nhất để có được các công cụ xây dựng mới hơn là chuyển sang 64bit.

14
Thibaut Mottet 2017-04-28 19:21.

Nếu sử dụng tools/bin/sdkmanager --licensesbạn vẫn cần có sự tương tác của con người. Tôi gặp sự cố khi sử dụng gitlab CI của mình. Đây là giải pháp của tôi:

wget --quiet --output-document=tools.zip https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
unzip -qq tools.zip
echo y | tools/bin/sdkmanager "platforms;android-25"
echo y | tools/bin/sdkmanager "platform-tools"
echo y | tools/bin/sdkmanager "build-tools;25.0.2"
echo y | tools/bin/sdkmanager "extras;android;m2repository"
echo y | tools/bin/sdkmanager "extras;google;m2repository"

echo y sẽ nói có nếu có bất kỳ câu hỏi nào, nhưng bạn cần tạo một dòng cho mỗi gói cài đặt

14
r1si 2018-03-28 03:19.

Bạn cũng có thể thực hiện:

$ANDROID_HOME/tools/bin/sdkmanager --licenses

Và trong Windows, hãy thực thi:

%ANDROID_HOME%/tools/bin/sdkmanager --licenses
11
ofir_aghai 2017-02-02 01:21.

Đối với thông báo lỗi về SDK api số 25:

android update sdk --no-ui --all --filter build-tools-25.0.1,android-25,extra-android-m2repository

10
user2967081 2018-02-20 18:35.

Ok CHO BẤT CỨ AI CÓ VẤN ĐỀ NÀY Kể từ năm 2018. Các câu trả lời trên hoàn toàn KHÔNG phù hợp với tôi. Công việc của DID là mở Android SDK - nhấp vào nút TẢI XUỐNG trên thanh công cụ và chọn các gói thích hợp. Sau khi họ tải xuống xong, nó sẽ cho phép bạn chấp nhận thỏa thuận cấp phép.

7
IgorGanapolsky 2016-11-16 07:21.

Tôi đã giải quyết vấn đề này bằng cách tạo một repo git công khai với các tệp giấy phép được chấp nhận. Sau đó, tôi sử dụng wgetđể tìm nạp các giấy phép này trên bất kỳ máy nào tôi cần vào thư mục [sdk-dir] / Licence trước khi chạy ./gradlew để xây dựng dự án của mình.

6
sksamuel 2018-04-01 01:14.

Đối với những người gặp sự cố với SDK dòng lệnh, lý do khiến nó không tìm thấy giấy phép bạn đã chấp nhận là vì chúng đã được ghi đến một vị trí khác với $ANDROID_HOME/licensesnơi chúng cần đến.

Tôi thấy giải pháp dễ nhất là chấp nhận các giấy phép như sau:

$ANDROID_HOME/bin/sdkmanager --licenses --sdk_root=$ANDROID_HOME

Lưu ý: Điều này giả sử bạn đã đặt ANDROID_HOMEtrỏ đến bất kỳ nơi nào sdk của bạn được cài đặt.

6
Jimmy Yin 2017-11-07 17:05.

cd $ANDROID_HOME/tools/bin yes | ./sdkmanager --update

hoặc là

yes | $ANDROID_HOME/tools/bin/sdkmanager --update

6
Deepak Kumrawat 2019-06-09 08:15.

đối với windows, mở cmd và nhập vào binthư mục bằng cách chạy lệnh:

cd C:\Users\username\AppData\Local\Android\sdk\tools\android\Sdk\tools\bin

sau đó chạy sdkmanager --licenseslệnh, nó yêu cầu chấp nhận giấy phép.

6
Jayprakash Dubey 2020-04-27 02:27.

Lưu ý: Điều này chỉ dành cho người dùng Mac

Tôi gặp vấn đề tương tự nhưng không có câu trả lời nào được đăng giúp ích vì không có toolsthư mục nào hiện diện Library/Android/sdk.(tôi đang sử dụng Android 3.6.3 trên Mac OS 10.14.4)

Các bước dưới đây đã giúp tôi khắc phục lỗi sự cố cấp phép:

  1. Mở Android Studio
  2. Nhấn cmd + shift + A. Thao tác này sẽ mở ra Actionscửa sổ bật lên.
  3. Tìm kiếm SDK Managervà nhấn enter để mở.
  4. Điều này sẽ mở cửa sổ bật lên cho Android SDK. Chọn một số phiên bản Android khác ngoài phiên bản đã được cài đặt. (Trong trường hợp của tôi, Android 10.0 đã được cài đặt nên tôi đã chọn Android 9.0)
  5. Sau đó chọn Applynút. Thao tác này sẽ cài đặt SDK tương ứng.

  1. Bây giờ hãy chạy ứng dụng của bạn, nó sẽ hoạt động mà không có bất kỳ ngoại lệ nào.

4
moobyfr 2018-01-31 23:48.

Cuối cùng tôi đã tìm thấy một giải pháp trên Windows, để cài đặt tự động và im lặng thực sự:

Trên Windows, cú pháp sau không hoạt động:

echo y | sdkmanager --licenses

Có vẻ như "y" không được gửi chính xác đến chương trình java được gọi trong lô.

Cách giải quyết là tạo tệp tệp-y.txt với một số "y", từng dòng một và để sử dụng

call sdkmanager --licenses < file-y.txt

Thao tác này sẽ tạo các tệp cần thiết trong thư mục giấy phép. Vấn đề có thể liên quan đến việc sử dụng BufferedReader trong Java

3
surya 2017-03-23 00:13.

Sao chép toàn bộ giấy phép / thư mục và dán vào thư mục chính Android SDK trên máy mà bạn muốn xây dựng các dự án của mình.

https://developer.android.com/studio/intro/update.html#download-with-gradle

điều này đã giải quyết vấn đề cho tôi

3
Mark Johnson 2017-06-03 13:41.

Trong Windows PowerShell, bạn có thể làm

for($i=0;$i -lt 30;$i++) { $response += "y`n"}; $response | sdkmanager --licenses

Điều này linh hoạt hơn nhiều và không cần can thiệp thủ công. Con số 30 là tùy ý, đủ để bao gồm số lượng giấy phép chấp nhận, nhưng có thể tăng lên nếu cần

3
A.L 2017-11-17 03:37.

Tôi đã gặp lỗi tương tự khi sử dụng Cordova.

Sự cố là do tôi đã cài đặt Android Sdk thông qua Android Studio và thông qua aptvới apt install android-sdk adb. Và Cordova đang gọi các tệp được cài đặt thông qua aptthay vì các tệp trong thư mục chính của tôi.

Nó hoạt động sau khi tôi thay đổi đường dẫn đến SDK trong bash:

# Change path
export ANDROID_HOME="$HOME/Android/Sdk/"
echo "Android home = $ANDROID_HOME"
# Accept licenses
eval "${ANDROID_HOME}/tools/bin/sdkmanager --licenses"
# Run Cordova
cordova build android

Sau đó, tôi loại bỏ các tập tin hệ thống mà không được sử dụng nữa: apt remove android-sdk adb.

3
Manoj Shrestha 2017-12-12 12:19.

Bạn có thể chấp nhận tất cả giấy phép bằng cách thực hiện lệnh sau:

 sdkmanager --licenses

Điều này sẽ nhắc bạn thông qua từng giấy phép mà bạn chưa chấp nhận và bạn chỉ cần nhập yđể chấp nhận từng giấy phép đó.

3
Youngjae 2019-01-21 20:18.

Đây là thiết lập Docker của tôi.
Bạn có thể theo dõi từ môi trường Linux đơn giản.

Lưu ý rằng yes |--licenses --sdk_root=${ANDROID_HOME}các mệnh đề.
Nó dường như hoàn nguyên các sdkmanager --updatethỏa thuận, vì vậy đã yes |xuất hiện hai lần.

FROM openjdk:8
# Install dev-essential(gnumake)
RUN apt update
RUN apt install -y build-essential
# Set ENV
ENV SDK_URL="https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip" \
    ANDROID_HOME="/usr/local/android-sdk" \
    ANDROID_VERSION=28 \
    ANDROID_BUILD_TOOLS_VERSION=28.0.3 \
    GRADLE_VERSION=4.10.3 \
    NDK_VERSION=r16b
# Download Android SDK
RUN mkdir "$ANDROID_HOME" .android \
    && cd "$ANDROID_HOME" \
    && curl -o sdk.zip $SDK_URL \
    && unzip sdk.zip \
    && rm sdk.zip \
    && yes | $ANDROID_HOME/tools/bin/sdkmanager --licenses --sdk_root=${ANDROID_HOME}
# Install Android Build Tool and Libraries
RUN $ANDROID_HOME/tools/bin/sdkmanager --update
RUN yes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \
    "platforms;android-${ANDROID_VERSION}" \
    "platform-tools" --sdk_root=${ANDROID_HOME}
# Install Gradle
RUN wget https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip
RUN mkdir /opt/gradle
RUN unzip gradle-${GRADLE_VERSION}-all.zip -d /opt/gradle
ENV PATH=${PATH}:/opt/gradle/gradle-${GRADLE_VERSION}/bin
# Install NDK
RUN wget https://dl.google.com/android/repository/android-ndk-${NDK_VERSION}-linux-x86_64.zip
RUN mkdir /opt/ndk-bundle
RUN unzip android-ndk-${NDK_VERSION}-linux-x86_64.zip -d /opt/ndk-bundle
ENV PATH=${PATH}:/opt/ndk-bundle

RUN mkdir /application
WORKDIR /application
3
Juanma Menendez 2020-07-01 09:21.

Nếu bạn đang sử dụng Flutter chỉ cần chạy:

flutter doctor --android-licenses 

Và chấp nhận tất cả các giấy phép cần thiết.

2
Aymen Boumaiza 2018-06-01 14:11.

Tôi đã thử tất cả lệnh trên trên máy windows 10 nhưng giải pháp là sử dụng SDKMANAGER để kiểm tra và chấp nhận giấy phép mua cài đặt phiên bản bị thiếu

2
Buldo 2019-07-10 10:38.

Kể từ tháng 7 năm 2019 , phương pháp dễ nhất là sử dụng: flutter doctor --android-licensestrong dấu nhắc lệnh.

Nó tiếp tục hiển thị từng T&C không được chấp nhận của các SDK và bạn được cung cấp tùy chọn để chọn 'y / n'. Chọn y cho tất cả.

Ngoài ra, khi bạn chạy flutter doctor, nó sẽ chạy chẩn đoán chuỗi công cụ Android, hiển thị số lượng giấy phép chưa được chấp nhận và đề xuất bạn chạy nó với cờ --android-License.

2
Sukeesh 2020-03-21 21:50.

Đường dẫn này đã được thay đổi trong các phiên bản gần đây. ./sdkmanagerbây giờ đang ở /Library/Android/sdk/cmdline-tools/latest/binvà sau đó chỉ cần làm

./sdkmanager --licenses

Related questions

MORE COOL STUFF

Cate Blanchett chia tay chồng sau 3 ngày bên nhau và vẫn kết hôn với anh ấy 25 năm sau

Cate Blanchett chia tay chồng sau 3 ngày bên nhau và vẫn kết hôn với anh ấy 25 năm sau

Cate Blanchett đã bất chấp những lời khuyên hẹn hò điển hình khi cô gặp chồng mình.

Tại sao Michael Sheen là một diễn viên phi lợi nhuận

Tại sao Michael Sheen là một diễn viên phi lợi nhuận

Michael Sheen là một diễn viên phi lợi nhuận nhưng chính xác thì điều đó có nghĩa là gì?

Hallmark Star Colin Egglesfield Các món ăn gây xúc động mạnh đối với người hâm mộ tại RomaDrama Live! [Loại trừ]

Hallmark Star Colin Egglesfield Các món ăn gây xúc động mạnh đối với người hâm mộ tại RomaDrama Live! [Loại trừ]

Ngôi sao của Hallmark Colin Egglesfield chia sẻ về những cuộc gặp gỡ với người hâm mộ ly kỳ tại RomaDrama Live! cộng với chương trình INSPIRE của anh ấy tại đại hội.

Tại sao bạn không thể phát trực tuyến 'chương trình truyền hình phía Bắc'

Tại sao bạn không thể phát trực tuyến 'chương trình truyền hình phía Bắc'

Bạn sẽ phải phủi sạch đầu đĩa Blu-ray hoặc DVD để xem tại sao Northern Exposure trở thành một trong những chương trình nổi tiếng nhất của thập niên 90.

Where in the World Are You? Take our GeoGuesser Quiz

Where in the World Are You? Take our GeoGuesser Quiz

The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!

8 công dụng tuyệt vời của Baking Soda và Giấm

8 công dụng tuyệt vời của Baking Soda và Giấm

Bạn biết đấy, hai sản phẩm này là nguồn điện để làm sạch, riêng chúng. Nhưng cùng với nhau, chúng có một loạt công dụng hoàn toàn khác.

Hạn hán, biến đổi khí hậu đe dọa tương lai của thủy điện Hoa Kỳ

Hạn hán, biến đổi khí hậu đe dọa tương lai của thủy điện Hoa Kỳ

Thủy điện rất cần thiết cho lưới điện của Hoa Kỳ, nhưng nó chỉ tạo ra năng lượng khi có nước di chuyển. Bao nhiêu nhà máy thủy điện có thể gặp nguy hiểm khi các hồ và sông cạn kiệt?

Quyên góp tóc của bạn để giúp giữ nước sạch của chúng tôi

Quyên góp tóc của bạn để giúp giữ nước sạch của chúng tôi

Tóc tỉa từ các tiệm và các khoản quyên góp cá nhân có thể được tái sử dụng như những tấm thảm thấm dầu và giúp bảo vệ môi trường.

Một thương hiệu kế thừa khác có được cuộc sống mới khi những người chủ mới của Black Opal có được Hội chợ thời trang

Một thương hiệu kế thừa khác có được cuộc sống mới khi những người chủ mới của Black Opal có được Hội chợ thời trang

Desiree Rogers, trái, và Cheryl Mayberry McKissack Chuyển sang, Fenty Beauty và Pat McGrath, có một đế chế làm đẹp mới do phụ nữ làm chủ đang trỗi dậy. Sau thương vụ mua lại mỹ phẩm Black Opal vào tháng 9, đội ngũ quyền lực của Giám đốc điều hành công ty Desiree Rogers và Chủ tịch Cheryl Mayberry McKissack đã thông báo mua lại thương hiệu làm đẹp tiên phong Fashion Fair từ người sáng lập Johnson Publishing Company (JPC).

Ngoài việc trở nên vô nghĩa, các bên bộc lộ giới tính giờ đây đã trở nên chết người

Ngoài việc trở nên vô nghĩa, các bên bộc lộ giới tính giờ đây đã trở nên chết người

Đối với những người có quá nhiều thời gian, tiệc tiết lộ giới tính là một cách thú vị để không cần áp đặt những định kiến ​​hạn chế lên thai nhi trước một đối tượng bạn bè giả vờ quan tâm một cách lịch sự. Tuy nhiên, việc chỉ dựa vào những chiếc bánh nướng có màu nhân tạo để biểu thị một tiếng hoo-ha hoặc một đứa trẻ đi tè đã trở nên xa xỉ trong các bậc cha mẹ trên Instagram.

Kirstjen Nielsen đang cố gắng đổi mới bản thân với tư cách là một người phụ nữ 'nói ra sự thật cho sức mạnh'

Kirstjen Nielsen đang cố gắng đổi mới bản thân với tư cách là một người phụ nữ 'nói ra sự thật cho sức mạnh'

Hôm thứ Tư, cựu Bộ trưởng An ninh Nội địa Kirstjen Nielsen vì một lý do nào đó đã được đưa ra một diễn đàn để phát biểu tại Hội nghị thượng đỉnh Những người phụ nữ quyền lực nhất của Fortune. Và có thể đoán trước được, người phụ nữ giám sát các nỗ lực (đang diễn ra) của chính quyền Trump nhằm chia cắt các gia đình ở biên giới đã sử dụng thời gian của mình như một cơ hội để tự bảo vệ mình và tự nhận mình là người — và hãy hít thở sâu ở đây — “đã nói sự thật với quyền lực.

Toyota Racing Development sẽ cho ra mắt Supra 3000GT Concept, Massive Wing vào tháng tới

Toyota Racing Development sẽ cho ra mắt Supra 3000GT Concept, Massive Wing vào tháng tới

Vì thế hệ mới nhất của chiếc xe điều chỉnh được yêu thích trên thế giới hiện đã có mặt tại đây, nên chỉ có điều kiện là Toyota Racing Development sẽ đưa phiên bản Supra thế hệ thứ năm sửa đổi của riêng mình đến SEMA vào tháng tới. Toyota đã cho chúng tôi một gợi ý về những gì sẽ xảy ra trong tuần này: một chiếc Concept GR Supra 3000GT hiện đại.

Nicky Hilton Forced to Borrow Paris' 'I Love Paris' Sweatshirt After 'Airline Loses All [My] Luggage'

Nicky Hilton Forced to Borrow Paris' 'I Love Paris' Sweatshirt After 'Airline Loses All [My] Luggage'

Nicky Hilton Rothschild's luggage got lost, but luckily she has an incredible closet to shop: Sister Paris Hilton's!

Kate Middleton dành một ngày bên bờ nước ở London, cùng với Jennifer Lopez, Julianne Hough và hơn thế nữa

Kate Middleton dành một ngày bên bờ nước ở London, cùng với Jennifer Lopez, Julianne Hough và hơn thế nữa

Kate Middleton dành một ngày bên bờ nước ở London, cùng với Jennifer Lopez, Julianne Hough và hơn thế nữa. Từ Hollywood đến New York và mọi nơi ở giữa, hãy xem các ngôi sao yêu thích của bạn đang làm gì!

17 tuổi bị đâm chết trong khi 4 người khác bị thương trong một cuộc tấn công bằng dao trên sông Wisconsin

17 tuổi bị đâm chết trong khi 4 người khác bị thương trong một cuộc tấn công bằng dao trên sông Wisconsin

Các nhà điều tra đang xem xét liệu nhóm và nghi phạm có biết nhau trước vụ tấn công hay không

Thanh thiếu niên, Gia đình Florida Hội đồng quản trị trường học về Luật 'Không nói đồng tính': 'Buộc chúng tôi tự kiểm duyệt'

Thanh thiếu niên, Gia đình Florida Hội đồng quản trị trường học về Luật 'Không nói đồng tính': 'Buộc chúng tôi tự kiểm duyệt'

Vụ kiện, nêu tên một số học khu, lập luận rằng dự luật "Không nói đồng tính" được ban hành gần đây của Florida "có hiệu quả im lặng và xóa bỏ học sinh và gia đình LGBTQ +"

Đường băng hạ cánh

Đường băng hạ cánh

Cuối hè đầu thu là mùa hoài niệm. Những chiếc đèn đường chiếu ánh sáng của chúng qua những con đường đẫm mưa, và những chiếc lá dưới chân - màu đỏ cam tắt trong bóng chạng vạng - là lời nhắc nhở về những ngày đã qua.

Hãy tưởng tượng tạo ra một chiến lược nội dung thực sự CHUYỂN ĐỔI. Nó có thể.

Hãy tưởng tượng tạo ra một chiến lược nội dung thực sự CHUYỂN ĐỔI. Nó có thể.

Vào năm 2021, tôi khuyến khích bạn suy nghĩ lại mọi thứ bạn biết về khách hàng mà bạn phục vụ và những câu chuyện bạn kể cho họ. Lùi lại.

Sự mất mát của voi ma mút đã mở ra trái tim tôi để yêu

Sự mất mát của voi ma mút đã mở ra trái tim tôi để yêu

Vào ngày sinh nhật thứ 9 của Felix The Cat, tôi nhớ về một trong những mất mát lớn nhất trong cuộc đời trưởng thành của tôi - Sophie của tôi vào năm 2013. Tôi đã viết bài luận này và chia sẻ nó trên nền tảng này một thời gian ngắn vào năm 2013.

Khi bạn không thể trở thành người mà Internet muốn bạn trở thành

Khi bạn không thể trở thành người mà Internet muốn bạn trở thành

Tôi ghét từ "tàu đắm". Mọi người cảm thấy thoải mái trong la bàn đạo đức của riêng mình, và khi làm như vậy, họ thấy mình vượt qua sự phán xét.

Language