모든 SDK 라이센스 자동 수락
gradle 안드로이드 플러그인 2.2-alpha4 이후:
Gradle은 프로젝트에 종속된 누락된 SDK 패키지를 다운로드하려고 시도합니다.
이것은 놀라울 정도로 멋지고 Jake Wharton 프로젝트로 알려져 있습니다.
그러나 SDK 라이브러리를 다운로드하려면 라이센스 계약에 동의하거나 다음과 같은 메시지를 표시해야 합니다.
[Android SDK Build-Tools 24, Android SDK Platform 24] SDK 구성 요소의 라이센스 계약에 동의하지 않았습니다.프로젝트를 빌드하기 전에 라이센스 계약에 동의하고 Android Studio SDK Manager를 사용하여 누락된 구성 요소의 설치를 완료해야 합니다.또는 한 워크스테이션에서 다른 워크스테이션으로 라이센스 계약을 전송하는 방법에 대해 알아보려면 http://d.android.com/r/studio-ui/export-licenses.html 을 방문하십시오.
. 왜냐하면 저는 하면서 sdk 종속성을 하고 입니다.gradle build
.
모든 라이센스를 자동으로 수락하는 솔루션을 찾고 있습니다.그래들 대본?무슨 생각 있어요?
업데이트 2021 이것은 쉽고 최신이기 때문에 승인된 답변이어야 합니다.
Android SDK는 마침내 라이센스를 수락할 수 있습니다.
에 가다Android\sdk\tools\bin
yes | sdkmanager --licenses
편집:
@MoOx의 댓글에서 지적했듯이, 당신은 macOS에서 할 수 있습니다.
yes | sudo ~/Library/Android/sdk/tools/bin/sdkmanager --licenses
윈도우에서 @pho, @mikebridge, @ Noitidart의 코멘트에서 지적했듯이, 당신은 할 수 있습니다.
cmd.exe /C"%ANDROID_HOME%\tools\bin\sdkmanager.bat --licenses"
전에 Java를 설치해야 합니다.
다음 오류가 발생했습니다.
License for package Android SDK Build-Tools 30.0.2 not accepted.
그래서 저는 도구 -> SDK 매니저 -> SDK 도구로 이동했습니다.그런 다음 Google Play 라이선스 라이브러리를 설치했습니다.그것은 문제를 해결했습니다.
나는 이것을 그와 마주쳤습니다.alpha5
시사회
제이크 와튼은 당신이 현재 사용할 수 있다고 나에게 지적했습니다.
mkdir -p "$ANDROID_SDK/licenses"
echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_SDK/licenses/android-sdk-license"
echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "$ANDROID_SDK/licenses/android-sdk-preview-license"
의 조를재기를 $ANDROID_HOME/license
컴퓨터에 있는 폴더.이는 오류 메시지(http://tools.android.com/tech-docs/new-build-system/license) 의 링크에 설명된 프로세스와 동일한 결과를 가져옵니다.
해시는 라이센스 텍스트의 sha1s이며, 주기적으로 업데이트될 것으로 예상되므로 이 코드는 매우 오랫동안만 작동할 것입니다 :)
수동으로 설치하지만 이를 수행하는 것이 Gradle의 새로운 기능입니다.
저는 처음에 이것이 즉시 작동하지 않는다는 것에 놀랐습니다. 심지어 제가 지정된 구성 요소에 대한 라이센스를 승인했을 때도 말입니다.android
매니저로, 이를 은 AS 내부의 SDK 매니저입니다./licenses
폴더를 누릅니다.
공식 도구는 법적인 이유로 이 단계를 건너뛰고 싶어하지 않을 것이라고 생각합니다.
기재된 릴리스 노트를 다시 읽는 중
SDK 자동 다운로드: Gradle은 프로젝트에 종속된 누락된 SDK 패키지를 다운로드하려고 시도합니다.
즉, 아직 Android 도구를 설치하지 않고 최신 라이센스를 수락한 경우에는 작동하지 않습니다.
편집: 그렇다고 해도, SDK를 AS에 연결하기 전까지는 테스트 gubuntu 박스에서 작동하지 않습니다. CI는 잘 작동하지만 - 차이점이 무엇인지 잘 모르겠습니다...
최신 Android Studio(2.3)의 경우 모든 라이센스를 업데이트/승인하는 가장 좋은 방법은 다음을 실행하는 것입니다.
cd $ANDROID_HOME
tools/bin/sdkmanager --licenses
설치에 따라 라이센스 파일을 다른 위치에 복사해야 할 수도 있습니다.
새로운 것을 위하여sdkmanager
유틸리티:
yes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;24.0.3"
예스 사이에 약간의 지연이 있기 때문에 잠시 동안 라이센스가 표시된 상태에서 명령이 중단될 수 있지만, 사람의 개입이 필요하지 않습니다.
Jenkins를 사용하는 경우 빌드 프로세스의 첫 번째 단계로 다음 bash 스크립트를 사용할 수 있습니다.
(while sleep 3; do echo "y"; done) | $ANDROID_HOME/tools/android update sdk -u
이렇게 하면 사용 가능한 모든 업데이트가 설치되지만 디스크 공간을 확보할 수 있으면 시간이 절약됩니다.이 경우 "예"가 제대로 작동하지 않으므로 설치 프로그램의 읽기 줄이 끊기는 것을 방지하기 위한 절전 모드입니다.
편집: 기본 제공 SDK 관리자를 사용하는 경우 올바른 $ANDROID_HOME을 얻으려면 빌드 단계에서 "Install Android project prequireds" 플러그인을 추가해야 합니다.
이것은 나의 실수를 해결했습니다.
echo yes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;25.0.2"
젠킨스에게 프로젝트를 구축하는 것과 같은 문제를 발견했습니다.와 함께buildToolsVersion '25.0.2'
우리는 건축하기 전에 허가증을 받아야 합니다.우리의 경우, 우리는 다음을 실행해야 했습니다.
yes | sdkmanager --update
자체에 라이센스를 한 다음 sdkmanager 파일을 하십시오.
yes | sdkmanager --licenses
되지 않은 새
다음과 같은 사용자와 함께 이 명령을 실행합니다.jenkins
그니다습입니다. 저희 데비안에서는 젠킨스 사용자가jenkins
다른 말로: 그것을 하는 것.root
된 라이센스를 된라생성니다합를로 합니다.root
젠킨스가 읽을 수 없게 될 겁니다
그건 그렇고, 우리는 발견했습니다.sdkmanager
/var/lib/jenkins/tools/android-sdk/tools/bin
만약 당신의 것이 그곳에 없다면, 그것을 찾으세요.find / -name "sdkmanager"
안타깝게도 OP가 원래 해결했던 방식이 항상 작동하는 것은 아닙니다.오류 메시지에서 빌드 현재 빌드 도구 버전이 무엇인지 확인할 수 있습니다.누락된 빌드 도구의 상위 버전일 수 있습니다.이 경우 SDK Manager를 수동으로 시작하고 빌드 도구를 추가하고 라이센스를 수락해야 합니다.
작업 지침에 따라 다음과 같이 표시됩니다.
$ ./gradlew build
이 빌드에 대한 JVM 설정을 준수하기 위해 새 JVM이 분기됩니다.데몬(https://docs.gradle.org/2.14.1/userguide/gradle_daemon.html )을 사용하는 것을 고려해 보십시오. 실패: 예외가 발생하여 빌드에 실패했습니다. 무엇이 잘못되었습니까?프로젝트 ':app'을(를) 구성하는 동안 문제가 발생했습니다.> 다음 SDK 구성 요소의 라이센스 계약에 동의하지 않았습니다. [Android SDK 빌드-툴 24.0.2]. ...빌드 실패
참고: 2017-04-16
그
android
도구는 이제 새로운 것을 위해 더 이상 사용되지 않습니다.sdkmanager
Joe Lawson님의 답변과 3월(2017) 이후의 게시물을 참고하시기 바랍니다.
그런 다음 명령을 다음과 같이 조정합니다.
android update sdk --no-ui --filter build-tools-24.0.2,android-24,extra-android-m2repository
소스 새로 고침: https://dl.google.com/android/repository/addons_list-2.xml 를 가져오는 중XML 유효성 검사XML 구문 분석추가 기능 목록을 가져왔습니다.소스 새로 고침URL을 가져오는 중: https://dl.google.com/android/repository/repository-11.xmlXML 검증: https://dl.google.com/android/repository/repository-11.xml구문 분석 XML: https://dl.google.com/android/repository/repository-11.xml...오류: 알 수 없는 패키지 필터 'build-tools-24.0.2'을(를) 무시합니다.-------------------------------라이센스 ID: rodroid-sdk-license-xxxxxxxxxxxxxxxx사용자:SDK 플랫폼 Android 7.0, API 24, 리비전 2Android 지원 저장소, 개정판 39------------------------------- ... 2015년 11월 20일'Android-sdk-license-xxxxxxx' 라이센스에 동의하십니까 [y/n]: y 보관 파일 설치 중: 아카이브 설치 준비SDK Platform Android 7.0, API 24, 리비전 2 다운로드SDK Platform Android 7.0, API 24, 리비전 2 설치SDK Platform Android 7.0, API 24, 리비전 296% 설치Android 지원 저장소 다운로드, 개정판 39Android 지원 저장소 설치, 개정판 39Android 지원 저장소 설치, 개정판 3999%)완료. 2개의 패키지가 설치되었습니다.
이것을 다시 실행하는 것은 여전히 Gradle을 행복하게 하지 않습니다.그래서 누군가가 더 좋은 것을 생각해 낼 때까지 수동적인 수용만이 유일한 해결책입니다. (제발!)
그android
는 사용하지 는 도는더사사않합니야다용해으를 사용해야 합니다.sdkmanager
대신. sdkmanager
또한 사용자가 처음 라이센스 파일을 수락할 때 라이센스 파일을 참조하십시오.을 사용해도 됩니다.
echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_SDK/licenses/android-sdk-license"
일부 시스템에서 작동합니다.모두에게 효과가 없을 겁니다.새 상태에서 를 부여할 수 에 "" SDK를 .-n
명령어에됩니다.
echo -n -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_SDK/licenses/android-sdk-license"
작동하지 않으면 base64 인코딩을 대신 사용할 수 있습니다.
내 라이센스를 검색하려면:
$> 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"
라이센스에 동의하라는 메시지가 표시됩니다.인승후다복로다니됩사으음으로 됩니다.${ANDROID_HOME}/licenses/android-sdk-license
것을 얻으려면 항상기된용정를파게악할수위있해보기장하도록하확도록을 사용합니다.base64
.
$> base64 ${ANDROID_HOME}/licenses/android-sdk-license
Cjg5MzNiYWQxNjFhZjQxNzhiMTE4NWQxYTM3ZmJmNDFlYTUyNjljNTU=
그러면 사용할 수 있습니다.base64 -d
파일을 정확하게 다시 만듭니다.
$> echo Cjg5MzNiYWQxNjFhZjQxNzhiMTE4NWQxYTM3ZmJmNDFlYTUyNjljNTU= | base64 -d > ${ANDROID_HOME}/licenses/android-sdk-license
작성된 파일이 sha1sum을 실행하여 예상되는 파일인지 확인할 수 있습니다.
$> sha1sum ${ANDROID_HOME}/licenses/android-sdk-license
da6b80c9c47b41c0bf7032938e7137a58a3dc249
를 yes | sdkmanager --licenses
는 그런다의내인다니쇄합의 합니다.$ANDROID_HOME/licenses/android-sdk-license
,
우리는 이것을 얻을 것입니다.
# cat $ANDROID_HOME/licenses/android-sdk-license
8933bad161af4178b1185d1a37fbf41ea5269c55
d56f5187479451eabf01fb78af6dfcb131a6481e
GitLab CI의 경우 Android SDK Build-Tools 26.0.2 라이센스를 수락하려면 다음을 실행해야 합니다.
before_script:
- mkdir -p $ANDROID_HOME/licenses
- echo "8933bad161af4178b1185d1a37fbf41ea5269c55" > $ANDROID_HOME/licenses/android-sdk-license
- echo "d56f5187479451eabf01fb78af6dfcb131a6481e" >> $ANDROID_HOME/licenses/android-sdk-license
현재 이 질문을 받고 있는 사람들은 build-tools-24.0.2가 이제 쓸모없는 것으로 간주되므로 다음과 같은 정보를 얻을 수 있습니다.
Error: Ignoring unknown package filter 'build-tools-24.0.2'
설치하도록 제안된 다양한 명령을 실행하는 경우
솔루션은 다음을 추가하는 것입니다.--all
:
android update sdk --no-ui --all --filter "build-tools-24.0.2"
또한 32bit Linux를 사용하는 경우 빌드 도구 23.0.1 이후의 모든 작업은 64bit 전용이므로 실행되지 않습니다. 32bit 사용자는 23.0.1에 고정되어 있으므로 나중에 빌드 도구를 사용할 수 있는 유일한 방법은 64bit로 전환하는 것입니다.
사용하는 경우tools/bin/sdkmanager --licenses
당신은 여전히 인간적인 상호작용이 필요합니다.Gitlab CI를 사용하는 데 문제가 있습니다.이것이 제 해결책입니다.
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
마다 한 .
다음을 실행할 수도 있습니다.
$ANDROID_HOME/tools/bin/sdkmanager --licenses
Windows에서 다음을 실행합니다.
%ANDROID_HOME%/tools/bin/sdkmanager --licenses
2018년 기준으로 이 문제가 있는 모든 사용자에게 OK.위의 답변들은 저에게 전혀 통하지 않았습니다.DID 작업은 Android SDK를 열고 도구 모음의 Download 버튼을 클릭한 다음 적절한 패키지를 선택하는 것이었습니다.다운로드가 완료되면 사용권 계약에 동의할 수 있습니다.
Android Studio for Windows의 솔루션은 다음과 같습니다.
에 가다File
->Settings
->Appearance & Behaviour
->System Settings
->Android SDK
->SDK Tools
-> 인확Google Play Licensing Library
-> 릭클Apply
,그리고 나서.Ok
설치 후 응용 프로그램을 빌드합니다.그건 작동할 것이다.
SDK API 번호 25에 대한 오류 메시지가 표시되는 경우:
android update sdk --no-ui --all --filter build-tools-25.0.1,android-25,extra-android-m2repository
참고: Mac 사용자 전용입니다.
저도 같은 문제가 있었지만 게시된 답변이 없어서 도움이 되지 않았습니다.tools
가 더있음에 .Library/Android/sdk.
10 3Mac OS 10.14).4에서 Android 3.6.3을 사용하고 있습니다.)
다음 단계는 라이센스 문제 오류를 해결하는 데 도움이 되었습니다.
- 을 엽니다.
Android Studio
- 를 누릅니다.
cmd + shift + A
하면 열니다립이 열립니다.Actions
팝업 창 - 을 합니다.
SDK Manager
Enter 키를 눌러 엽니다. - 다음에 대한 팝업이 열립니다.
Android SDK
버전 Android ( Android 설치되어 Android 했습니다) - 다음 런그다선택을 선택합니다.
Apply
SDK가 됩니다.해당 SDK를 설치합니다.
- 이제 앱을 실행하면 예외 없이 작동합니다.
승인된 라이센스 파일로 공용 git repo를 생성하여 이 문제를 해결했습니다. 저는 그면저는을 합니다.wget
./gradlew를 실행하여 프로젝트를 빌드하기 전에 필요한 모든 컴퓨터에서 이러한 라이센스를 [sdk-dir]/licenses 디렉토리로 가져옵니다.
SDK에 수 는 해당 가 "" ""와 다른 에 기록되었기 입니다.$ANDROID_HOME/licenses
그들이 있어야 할 곳입니다.
가장 쉬운 해결책은 다음과 같은 라이센스를 수락하는 것이었습니다.
$ANDROID_HOME/bin/sdkmanager --licenses --sdk_root=$ANDROID_HOME
설정한합니다.ANDROID_HOME
sdk가 설치된 위치를 가리킵니다.
도구 -> SDK 매니저 -> SDK 도구로 이동하였습니다.그런 다음 Google Play 라이선스 라이브러리를 설치했습니다.그것은 문제를 해결했습니다.
cd $ANDROID_HOME/tools/bin yes | ./sdkmanager --update
또는
yes | $ANDROID_HOME/tools/bin/sdkmanager --update
cmd 파일을 합니다.bin
명령을 :
cd C:\Users\username\AppData\Local\Android\sdk\tools\android\Sdk\tools\bin
그 다음에 달려라sdkmanager --licenses
라이센스를 수락하도록 요청하는 명령입니다.
Windows에서 자동으로 자동으로 자동 설치할 수 있는 솔루션을 찾았습니다.
Windows에서는 다음 구문이 작동하지 않습니다.
echo y | sdkmanager --licenses
배치에서 호출된 자바 프로그램에 "y"가 올바르게 전송되지 않은 것 같습니다.
해결 방법은 여러 개의 "y"가 있는 file-y.txt 파일을 한 줄씩 만들어 다음을 사용하는 것입니다.
call sdkmanager --licenses < file-y.txt
이렇게 하면 라이센스 디렉토리에 필요한 파일이 생성됩니다.이 문제는 Java에서 BufferedReader를 사용하는 것과 관련이 있을 수 있습니다.
Windows PowerShell에서 다음 작업을 수행할 수 있습니다.
for($i=0;$i -lt 30;$i++) { $response += "y`n"}; $response | sdkmanager --licenses
이는 훨씬 더 유연하며 수동 개입이 필요하지 않습니다.30개의 숫자는 임의이며, 라이센스 수락 수를 감당하기에 충분해야 하지만 필요한 경우 늘릴 수 있습니다.
위의 모든 명령어를 윈도우 10 컴퓨터에서 시도했지만, 해결책은 SDK Manager를 사용하여 누락된 버전을 설치하는 라이센스 구매를 확인하고 수락하는 것이었습니다.
이 링크에서 SDK 관리자를 다운로드합니다.그런 다음 압축을 풀고 터미널에서 다음 명령을 사용합니다.
!tools/bin/sdkmanager --sdk_root=/usr/lib/android-sdk --licenses <<< $'y\ny\ny\ny\ny\ny\ny\n'
전체 라이센스/디렉토리를 복사하여 프로젝트를 빌드하려는 컴퓨터의 Android SDK 홈 디렉토리에 붙여넣습니다.
https://developer.android.com/studio/intro/update.html#download-with-gradle
이것은 나를 위해 그 문제를 해결했습니다.
나는 코르도바를 사용하는 동안 같은 오류가 발생했습니다.
가 안드로이드 스튜디오를 입니다.apt
와 함께apt install android-sdk adb
를 통해 설치된 파일을 부르고 있었습니다.apt
내 홈 디렉토리에 있는 파일 대신에.
bash에서 SDK로 경로를 변경하면 작동했습니다.
# 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
파일을 했습니다.apt remove android-sdk adb
.
다음 명령을 실행하여 모든 라이센스를 수락할 수 있습니다.
sdkmanager --licenses
아직 수락하지 않은 각 라이센스를 확인하는 메시지가 표시되고 입력하면 됩니다.y
그들 각각을 받아들이는 것.
언급URL : https://stackoverflow.com/questions/38096225/automatically-accept-all-sdk-licences
'programing' 카테고리의 다른 글
간단한 (아마도 가장 간단한) C 컴파일러를 시작하는 것입니까? (0) | 2023.06.14 |
---|---|
새 데이터를 Firebase 데이터베이스에 푸시할 때 사용자 지정 키 설정 (0) | 2023.06.14 |
Oracle이 연산자와 같지 않음 (0) | 2023.06.14 |
오라클에서 글로벌 임시 테이블을 피하는 방법 (0) | 2023.06.14 |
형식 지정자 %02x (0) | 2023.06.14 |