모든 SDK 라이센스 자동 수락


441

gradle android plugins 2.2-alpha4 이후 :

Gradle은 프로젝트가 의존하는 누락 된 SDK 패키지 다운로드를 시도합니다

놀랍게도 멋지고 JakeWharton 프로젝트 인 것으로 알려졌습니다 .

그러나 SDK 라이브러리를 다운로드하려면 라이센스 계약에 동의하거나 gradle이 알려줍니다.

다음 SDK 구성 요소의 라이센스 계약에 동의하지 않았습니다. [Android SDK Build-Tools 24, Android SDK Platform 24]. 프로젝트를 빌드하기 전에 라이센스 계약에 동의하고 Android Studio SDK 관리자를 사용하여 누락 된 구성 요소 설치를 완료해야합니다. 또는 한 워크 스테이션에서 다른 워크 스테이션으로 라이센스 계약을 전송하는 방법을 배우려면 http://d.android.com/r/studio-ui/export-licenses.html 로 이동 하십시오.

그리고 이것은 sdk 의존성을 설치하는 동안 모든 SDK 종속성을 설치하고 싶기 때문에 문제 gradle build입니다.

모든 라이센스를 자동으로 수락하는 솔루션을 찾고 있습니다. 어쩌면 gradle 스크립트입니까? 당신은 어떤 아이디어가 있습니까?

감사!

[편집하다]

해결책은 다음과 같습니다.

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

수동으로 설치하지만 gradle의 새로운 기능 목적입니다.

[편집 2]

더 나은 해결책은 sdkmananger를 사용하는 것입니다.

yes | sdkmanager --licenses

12
당신은 또한 팝업 수 있습니다 echo y |자동으로 해당 명령 앞에 라이센스에 동의합니다. 헤드리스 CI 박스에서 실행할 때 유용 :)
Dori

3
도구가 내 집에 현지화 ~/.android/tools/android update sdk --no-ui --filter build-tools-25.0.0,android-25,extra-android-m2repository되었기 때문에 해야했습니다android
Jacksonkr

7
sdkmanager-라이센스가 더 이상 작동하지 않습니다. --upgrade를 사용하고 오류를 무시했으며 라이센스 문제가 정렬되었습니다.
jcsubmit

6
CI 환경 빌드 스크립트에이 조정을 약간 조정하여 사용했습니다. --sdk_root = $ ANDROID_SDK_PATH를 추가했습니다. 라이센스가 승인되어 Android SDK 루트 폴더에 저장되지 않는 문제가있었습니다. 최종 명령 : 예 | sdkmanager --licenses --sdk_root = $ ANDROID_SDK_PATH (sudo없이)
adi9090

3
반드시 설정하는 $ANDROID_SDK_PATH당신이 (예 : SDK를 설치 한 실제 루트 경로로 /opt/android-sdk), 아니면 그냥 직접 경로를 넣어 (예 : yes | sdkmanager --licenses --sdk_root=/opt/android-sdk)
GMC

답변:


365

AndroidSDK는 최종적으로 라이센스를 수락 할 수 있습니다.

yes | sdkmanager --licenses

편집하다:

macOS에서 @MoOx의 의견에서 지적했듯이 할 수 있습니다.

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

Windows에서 @pho, @mikebridge 및 @ Noitidart의 의견에서 지적했듯이 할 수 있습니다

cmd.exe ""/K"%LocalAppData%\Android\sdk\tools\bin\sdkmanager.bat --licenses"

Java를 설치하기 전에 반드시


4
Widows에서 실행으로 이동 한 C:\Users\x1\AppData\Local\Android\sdk\tools\android다음 GUI를 열고 팝업을 설치 한 다음 새 대화 상자에서 "Accept Liscenses"를 클릭하십시오.
Noitidart

8
이것은 리눅스에서는 작동하지 않습니다. tools / bin 디렉토리 아래 또는 다른 곳에 sdkmanager 파일이 없습니다. 도와주세요?
Mehmed Mert

36
macOS에서 할 수있는 일yes | sudo ~/Library/Android/sdk/tools/bin/sdkmanager --licenses
MoOx

5
gradle wrapper에서 라이센스를 자동으로 수락하려면 어떻게해야합니까?
Howard Swope

7
경로를 @Noitidart로 upvote했지만 작동하지 않았습니다. 명령 프롬프트에서 C : \ Users \ x1 \ AppData \ Local \ Android \ sdk \ tools \ bin \ sdkmanager --licenses를 실행하고 "y "+ 프롬프트에 입력
GaneshT

177

alpha5미리보기 에서이 문제가 발생했습니다 .

Jake Wharton은 현재 사용할 수 있다고 지적했습니다.

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 )에 설명 된 프로세스와 동일한 결과를 가져옵니다 .

해시는 라이센스 텍스트의 sha1이며 주기적으로 업데이트 될 것이라고 생각 하므로이 코드는 오랫동안 작동합니다. :)

수동으로 설치하지만 gradle의 새로운 기능 목적입니다.

android도구 를 통해 명명 된 구성 요소에 대한 라이센스를 수락 한 경우에도 처음에는 이것이 작동하지 않는다는 사실에 놀랐지 만 /licenses폴더 를 만드는 AS 내부의 SDK 관리자가 나에게 지적되었습니다 .

공식 도구는 법적 이유로이 단계를 건너 뛰고 싶지 않을 것입니다.

릴리스 노트 다시 읽기

SDK 자동 다운로드 : Gradle은 프로젝트가 의존하는 누락 된 SDK 패키지 다운로드를 시도합니다.

이는 아직 안드로이드 도구를 설치하지 않았고 이미 최신 라이센스를 수락 한 경우 작동한다는 의미는 아닙니다.

편집 : SDK를 AS에 연결할 때까지 테스트 gubuntu 상자에서 여전히 작동하지 않습니다. CI는 잘 작동합니다-차이점이 무엇인지 확실하지 않습니다 ...


sdkDownload 기능에는 support-v4와 같은 일부 구성 요소와 관련하여 작은 결함이 있습니다. 그것은 구성 요소를 업데이트 할 수 있지만 Gradle을 다음 호출 할 때까지 업데이트가 표시되지 않습니다. 하나의 해결 방법으로 gradle을 두 번 실행하고 한 번 버립니다. gradle dependencies || 사실 - code.google.com/p/android/issues/detail?id=212309
조 Bowbeer

6
mkdir -p대신 사용할 수 있습니다 || true.
oldergod

이 결함에 대해 감사합니다. 알아 두십시오. SDK 경로가 예상대로 정의되어 있는지 확인하려면 echo $ ANDROID_SDK
tryp

내 환경에서 ANDROID_SDK는 정의되어 있지 않지만 ANDROID_HOME
Dimitri L

5
@stack_ved : 방금 다른 것을 추가했습니다 echo: echo -e "\nd56f5187479451eabf01fb78af6dfcb131a6481e" >> "${ANDROID_HOME}/licenses/android-sdk-license". 그러나 나는 당신의 문제가 다른 곳에 숨어 있다고 생각합니다.
Paul

132

최신 Android Studio (2.3)의 경우 모든 라이센스를 업데이트 / 수용하는 가장 좋은 방법은 다음을 실행하는 것입니다.

cd $ANDROID_HOME
tools/bin/sdkmanager --licenses

설정에 따라 라이센스 파일을 다른 위치로 복사해야 할 수도 있습니다.


가장 좋은 방법은 같은이 모습은 이동하고 그냥 실행, 너무 모든 플랫폼에서 작동tools/bin/sdkmanager --licenses
jnv

오래된 SDK 관리자가 있으면 라이센스가 작동하지 않습니다. 도구 폴더를 다른 위치로 복사 한 다음 --sdk_root =를 사용하고 sdk 폴더를 가리키면 도구를 최신 버전으로 업데이트 할 수 있습니다.
Mirek Michalak

yes어떻게 자동화 된 빌드 시스템을 위해이 명령 을 파이프 할 수 있습니까? 이러한 머신에 항상 대화 형 콘솔 액세스 권한을 가질 수는 없으므로 y키보드를 실제로 눌러도 작동하지 않습니다.
void.pointer

누구 든지이 솔루션을 구현하는 방법을 안내해 줄 수 있습니까? build.sh에이 줄을 추가해야합니까?
stack_ved

1
그것은 나를 위해 일했지만 cd $ANDROID_HOME이 명령을 실행하기 전에 해야했다
Inus Saha

57

새로운 sdkmanager유틸리티의 경우 :

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

yesses 사이에 약간의 지연이 있으므로 명령이 라이센스 표시와 함께 잠시 중단 될 수 있지만 사람의 개입이 필요하지 않습니다.


내 설치 debian9에는 sdkmanager.jar 만 있습니다 : android-sdk-linux / tools / lib / sdkmanager.jar 및 # java -jar /android-sdk-linux/tools/lib/sdkmanager.jar 오류 : 도구 디렉토리 속성 설정되지 않은 경우 Android를 실행 중인지 확인하십시오.
user3313834

1
이것은 SDK 도구를 Google에서 아카이브로 다운로드하여 $ ANDROID_HOME
A. Rager에

이것이 가장 up-to-date답 이되는 것 같습니다 . --licenses더 이상 존재하지 않는 것 같습니다 . 참고 : 제공 할 수있는 가능한 버전 목록을 보려면$ANDROID_HOME/tools/bin/sdkmanager --list
Marinos An

2
힌트 주셔서 감사합니다. yes | android-sdk-linux/tools/bin/sdkmanager --licenses || trueCI를 사용하게 되었습니다.
iSWORD

es | $ ANDROID_HOME / tools / bin / sdkmanager "build-tools; 28.0.3"-> 버전 변경이 저에게 효과적이었습니다. 감사 !
ishab acharya

43

Jenkins를 사용하는 경우 빌드 프로세스의 첫 번째 단계로 다음 bash 스크립트를 사용할 수 있습니다.

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

물론 사용 가능한 모든 업데이트가 설치되지만 디스크 공간을 절약 할 수 있으면 시간이 절약됩니다. 이 경우에는 "yes"가 제대로 작동하지 않으므로 설치 프로그램에서 readline이 끊어지지 않도록해야합니다.

편집 : 또한 내장 된 SDK 관리자를 사용하는 경우 빌드 단계에서 "Android 프로젝트 필수 구성 요소 설치"플러그인을 추가하여 올바른 $ ANDROID_HOME을 가져와야합니다.


우분투에서 실행되지만 여전히 다음 오류가 발생하는 jenkins 빌드에서 "cordova platform add android"전에 코드 줄을 추가합니다 .7 초에 빌드 실패 오류 : / var / lib / jenkins / workspace / qa_global_php / platforms / android / gradlew : 종료 코드 1로 명령이 실패했습니다. 오류 출력 : FAILURE : 예외로 인해 빌드에 실패했습니다. * 잘못된 일 : 루트 프로젝트 'android'를 구성하는 중에 문제가 발생했습니다. > 귀하는 다음 SDK 구성 요소의 라이센스 계약에 동의하지 않았습니다.
Ashish Karpe

[Android SDK 빌드 도구 26.0.2]. 프로젝트를 빌드하기 전에 라이센스 계약에 동의하고 Android Studio SDK 관리자를 사용하여 누락 된 구성 요소 설치를 완료해야합니다.
Ashish Karpe

32

불행히도 OP가 원래 해결했던 방식이 항상 작동하는 것은 아닙니다. 오류 메시지에서 현재 빌드 도구 버전 은 무엇입니까 ? 상위 버전의 빌드 도구가 누락되었을 수 있습니다. 이 경우 SDK Manager를 수동으로 시작하고 빌드 도구를 추가하고 라이센스에 동의해야합니다.

OP 지침에 따라 다음과 같이 보입니다.

$ ./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의 답변 과 2017 년 3 월 이후의 게시물을 참조하십시오 .

그런 다음 다음과 같이 명령을 조정하십시오.

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.xml
  XML 확인 : 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 : android-sdk-license-xxxxxxxx
사용 : 
 -SDK 플랫폼 Android 7.0, API 24, 개정 2
  -Android 지원 리포지토리, 개정 39
-------------------------------

...

2015 년 11 월 20 일
'android-sdk-license-xxxxxxxx'라이센스 [y / n]에 동의하십니까 : y

아카이브 설치 :
  아카이브 설치 준비
  SDK Platform Android 7.0, API 24, 개정 2 다운로드
  SDK 플랫폼 Android 7.0, API 24, 개정 2 설치
    SDK Platform Android 7.0, API 24, 개정판 296 % 설치)
  Android Support Repository, 개정판 39 다운로드
  Android Support Repository 설치, 개정 39
    설치된 Android Support Repository, 개정판 3999 %)
  끝난. 2 개의 패키지가 설치되었습니다.

다시 실행해도 Gradle을 행복하게 만들지 마십시오. 따라서 수동 수락은 누군가가 더 나은 것을 얻을 때까지 유일한 솔루션입니다. (제발!)


1
android update sdk --no-ui --filter build-tools-24.0.2,android-24,extra-android-m2repository관리자 권한으로 명령 프롬프트를 통해 이것을 실행하면 오류가 수정되었습니다. phonegap 플러그인 관리자
Ravimallya

32

이 내 오류를 해결

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

2
몇 문자를 저장하려면 yes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;25.0.2"동일한 작업을 수행하십시오.
Flimzy

31

Jenkins에서 프로젝트를 빌드하는 것과 동일한 문제가 발견되었습니다. 를 사용하여 buildToolsVersion '25.0.2'빌드하기 전에 라이센스를 수락해야합니다. 이 경우 다음을 실행해야했습니다.

yes | sdkmanager --update sdkmanager 자체에 대한 라이센스를 수락 한 다음

yes | sdkmanager --licenses 이전에 승인되지 않은 새 라이센스를 수락하는

기억하십시오 : 동일한 사용자로이 comman을 실행하십시오 jenkins. 데비안에서 Jenkins 사용자는 단지 jenkins입니다. 다시 말해 root승인 된 라이센스는로 생성 root되므로 Jenkins는 라이센스를 읽지 않습니다.

그건 그렇고, 우리는 sdkmanager에서 찾았 습니다 /var/lib/jenkins/tools/android-sdk/tools/bin. 당신이 없다면,find / -name "sdkmanager"


2
이것은 Docker의 Jenkins와 함께 내 경우 (빌드 도구 26.0.x)의 문제를 해결했습니다. 감사!
Giordano

1
불행히도 여기에는 질문의 "자동"부분이 포함되지 않습니다.
m0skit0

귀하의 의견에 감사드립니다! 사람의 개입없이 모든 라이센스를 자동으로 수락하도록 최신 버전 기능과 일치하도록 질문을 업데이트했습니다.
Roc Boronat

24

android도구는 더 이상 사용되지 않으며 sdkmanager대신 사용해야합니다 . sdkmanager또한 라이센스 파일을 처음 승인 할 때 라이센스 파일을 작성합니다. 라이센스는 명령을 사용해도 사용중인 SDK에 따라 변경됩니다

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

일부 시스템에서 작동합니다. 전혀 작동하지 않습니다. 일부 SDK 설치는 파일에 줄 바꿈없이 라이센스 파일이 종료 될 것으로 예상하므로 -necho 명령에 a 를 추가하십시오 .

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

19

를 실행하면의 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

당신은 두 번째 반향이 같은 $ANDROID_HOME/licenses/android-sdk-license의도입니까? 즉. 추가
Ryan R

1
@RyanR, 예, 두 번째 에코가 추가되고 Android SDK Build-Tools 26.02새로운 라이센스 sha1 문자열 이 추가 되었습니다
jk2K

비트 버킷 파이프 라인을 사용하고 있지만 개념은 GitLab CI와 같은 것 같습니다. 귀하의 답변은 전체 프로세스를 더 잘 이해하는 데 도움이되었습니다. 감사!
Ridcully

@Ridcully 저는 또한 Bitbucket Pipelines를 사용하고 있으며 업그레이드 Build-Tools 26.0.2하고 빌드가 중단 되면 여기에서 자신을 발견했습니다 . 내 최종 솔루션은 간단하게 수행하는 것이 었습니다 yes | sdkmanager --licenses. 없음 echo의 필요 없음이 미래의 증거입니다.
Ryan R

@Ryan 'yes | sdkmanager --licenses '를 pipeline.yml? 대단 할 것입니다!
Ridcully

16

현재이 질문에 오는 사람은 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"

또한 32 비트 리눅스를 사용하는 경우 빌드 도구 23.0.1 이후의 모든 것은 64 비트 전용 이므로 실행되지 않습니다. 32 비트 사용자는 23.0.1을 고수하고 이후 빌드 도구를 얻는 유일한 방법은 64 비트로 전환하는 것입니다.


1
예, 빌드 도구가 방금 충돌했습니다 25.0.1.
not2qubit

1
귀하의 솔루션은 build-tools-25 및 gradle 4 용 헤드리스 우분투 16 시스템에서 작업 할 수있는 유일한 방법이었습니다.
spartygw

14

당신이 사용하는 경우 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 질문이 있으면 예라고 대답하지만 installe 패키지 당 한 줄을 만들어야합니다.


몇 달 후에도 여전히 관련이 있습니다. 감사합니다. 당신은 내 하루를 저장 :)
Prasanna Ramaswamy

이것은 또한 GitLab을 사용하여 도움이되었습니다
sebasira

13

다음을 실행할 수도 있습니다.

$ANDROID_HOME/tools/bin/sdkmanager --licenses

그리고 Windows에서 다음을 실행하십시오.

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

11

SDK API 번호 25에 대한 오류 메시지 :

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


10

2018 년 현재이 문제를 겪고있는 사람에게는 좋습니다. 위의 답변은 전혀 효과가 없었습니다. DID가 수행 한 작업 Android SDK를 여는 중-도구 모음에서 다운로드 버튼을 클릭하고 적절한 패키지를 선택하십시오. 다운로드가 완료되면 라이센스 계약에 동의 할 수 있습니다.

여기에 이미지 설명을 입력하십시오


7

승인 된 라이센스 파일을 사용하여 공개 자식 리포지토리를 만들어이 문제를 해결했습니다. 그런 다음 프로젝트를 빌드하기 위해 ./gradlew 를 실행하기 전에 wget필요한 모든 컴퓨터에서이 라이센스를 [sdk-dir] / licenses 디렉토리 로 가져옵니다 .


6

명령 행 SDK에 문제가있는 사용자가 승인 한 라이센스를 찾지 못한 이유는 라이센스가 다른 위치에 작성 되었기 때문입니다. $ANDROID_HOME/licenses 가 필요한 입니다.

가장 쉬운 해결책은 다음과 같은 라이센스를 수락하는 것입니다.

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

참고 : ANDROID_HOMESDK가 설치되는 곳을 가리 키도록 설정 했다고 가정합니다 .


6

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

또는

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


"자동으로"
m0skit0

6

Windows의 경우 cmd를 열고 bin다음 명령을 실행 하여 디렉토리에 입력하십시오 .

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

그런 다음 sdkmanager --licenses명령 을 실행 하면 라이센스 수락을 요청합니다.


1
고마워 이것이 내가 한 일
mynameisjohnj 2016 년

내가 얻을Error: Unknown argument --licenses
deanwilliammills

4

마지막으로 Windows에서 자동 자동 설치를위한 솔루션을 찾았습니다.

Windows에서 다음 구문이 작동하지 않습니다.

echo y | sdkmanager --licenses

"y"가 배치에서 호출 된 Java 프로그램으로 올바르게 전송되지 않은 것 같습니다.

해결 방법은 파일 "y.txt"를 여러 "y"(한 줄씩)로 만들고 사용하는 것입니다.

call sdkmanager --licenses < file-y.txt

라이센스 디렉토리에 필요한 파일이 생성됩니다. 이 문제는 아마도 Java에서 BufferedReader 사용과 관련이 있습니다.



3

Windows PowerShell에서 할 수있는 작업

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

이것은 훨씬 더 융통성이 있으며 수동 개입이 필요 없습니다. 30 개의 숫자는 임의적이며 라이센스 승인 수를 포함하기에 충분해야하지만 필요한 경우 증가시킬 수 있습니다


Windows를 사용하지 않는 또 다른 이유.
m0skit0

3

Cordova를 사용하는 동안 동일한 오류가 발생했습니다.

이 문제로 인해 내가 안드로이드 스튜디오를 통해 통해 안드로이드 SDK를 설치한다는 사실이었다 aptapt install android-sdk adb. 그리고 Cordova는 다음을 통해 설치된 파일을 호출했습니다.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.


3

Docker 설정은 다음과 같습니다.
일반 Linux 환경에서 따를 수 있습니다.

yes |--licenses --sdk_root=${ANDROID_HOME}조항에 유의하십시오 . 계약을 되 돌리는
것처럼 sdkmanager --update보이므로 yes |두 번 나타납니다.

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

"sdkmanager --update가 계약을 되 돌리는 것처럼 보이므로 yes |가 두 번 나타납니다." 와우, 네 말이 맞아 이것은 매우 실망 스럽지만 좋은 발견입니다.
cephus

2

다음 명령을 실행하여 모든 라이센스를 승인 할 수 있습니다.

 sdkmanager --licenses

그러면 아직 승인하지 않은 각 라이센스를 통해 프롬프트가 표시되며 각 라이센스를 수락 y하기 위해 입력 하기 만하면 됩니다.


"자동으로"
m0skit0

2

Windows 10 컴퓨터에서 위의 모든 명령을 시도했지만 해결책은 SDKMANAGER를 사용하여 누락 된 버전 설치 구매 라이센스를 확인하고 수락하는 것입니다

여기에 이미지 설명을 입력하십시오


이 CMD 명령 중 어느 것도 나를 위해 일하지 않았습니다. 덕분에
deanwilliammills

2

이 경로는 최신 버전에서 변경되었습니다. ./sdkmanager지금에 /Library/Android/sdk/cmdline-tools/latest/bin있고 그냥

./sdkmanager --licenses

2

참고 : 이것은 Mac 사용자만을위한 것입니다

동일한 문제가 있지만 폴더 가 없기 때문에 게시 된 답변 중 도움 이되지 않았습니다 (Mac OS 10.14.4에서 Android 3.6.3을 사용하고 있습니다)toolsLibrary/Android/sdk.

오류 스크린 샷

아래 단계는 라이센스 문제 오류를 극복하는 데 도움이되었습니다.

  1. 열다 Android Studio
  2. 를 누릅니다 cmd + shift + A. 이 열립니다 Actions팝업 창을여십시오.
  3. 검색 SDK Manager하고 Enter 키를 눌러 엽니 다.
  4. 에 대한 팝업이 열립니다 Android SDK. 이미 설치된 버전과 다른 버전의 Android를 선택하십시오. (제 경우에는 Android 10.0이 이미 설치되어 있으므로 Android 9.0을 선택했습니다)
  5. 그런 다음 Apply버튼을 선택하십시오 . 해당 SDK가 설치됩니다.

해결책

  1. 이제 예외없이 작동 해야하는 앱을 실행하십시오 .

성공 스크린 샷


안녕하세요, Linuxmint 19.3
GaryP

1

난 달린다

#react-native run-android 

터미널에서 그 문제를 만났습니다. 수동으로 Android Studio-> Android SDK-> SDK 플랫폼으로 이동하십시오. 패키지 세부 사항 표시를 클릭하고 확인하십시오.

+ Google APIs
+ Android SDK Platform 23
+ Intel x86 Atom_64 System Image
+ Google APIs Intel x86 Atom_64 System Image

패키지를 설치할 때 라이센스 승인 =>을 확인하면 문제를 해결할 수 있습니다.


1

Mac OSX에서 sdk/tools/bin

그런 다음를 실행 ./sdkmanager --licenses하고 모든 라이센스를 승인하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.