Tüm SDK lisanslarını otomatik olarak kabul et


441

Gradle android eklentileri 2.2-alpha4 olduğundan :

Gradle, bir projenin bağlı olduğu eksik SDK paketlerini indirmeye çalışacaktır

Bu inanılmaz güzel ve bir JakeWharton projesi olduğu biliniyordu .

Ancak, SDK kütüphanesini indirmek için yapmanız gerekenler: lisans sözleşmelerini kabul etmek veya not almak size şunları söyler:

Aşağıdaki SDK bileşenlerinin lisans sözleşmelerini kabul etmediniz: [Android SDK Build-Tools 24, Android SDK Platform 24]. Projenizi oluşturmadan önce, Android Studio SDK Yöneticisi'ni kullanarak lisans sözleşmelerini kabul etmeniz ve eksik bileşenlerin kurulumunu tamamlamanız gerekir. Alternatif olarak, lisans anlaşmalarının bir iş istasyonundan diğerine nasıl aktarılacağını öğrenmek için http://d.android.com/r/studio-ui/export-licenses.html adresine gidin.

Ve bu bir sorun çünkü bir sdk bağımlılıklarını yüklemek isterdim gradle build.

Tüm lisansları otomatik olarak kabul edecek bir çözüm arıyorum. Belki bir gradle senaryosu? Hiç fikrin var mı ?

Teşekkürler!

[DÜZENLE]

Bir çözüm yürütmekti:

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

Ve manuel olarak kurun, ancak bu, grubun yeni özellik amacıdır.

[DÜZENLEME 2]

Daha iyi bir çözüm sdkmananger kullanmaktır:

yes | sdkmanager --licenses

12
echo y |Lisansı otomatik olarak kabul etmek için bu komutun önüne bir de atabilirsiniz . Başsız bir CI kutusu üzerinde çalışırken kullanışlıdır :)
Dori

3
Yapmam gereken ~/.android/tools/android update sdk --no-ui --filter build-tools-25.0.0,android-25,extra-android-m2repositoryçünkü androidaracı evime lokalize edilmiş
Jacksonkr

7
sdkmanager - lisanslar artık çalışmıyor. --Upgrade kullandım, hataları görmezden geldim ve bu da lisans sorunlarını sıraladı.
jcsubmit

6
Bu ayarı küçük ayarlarla CI ortam derlemesi için kullandım. --Sdk_root = $ ANDROID_SDK_PATH ekledim. Sorun, lisansların kabul edilmesi ve Android SDK kök klasörüne kaydedilmemesiydi. Son komut: evet | sdkmanager --licenses --sdk_root = $ ANDROID_SDK_PATH (sudo olmadan)
adi9090

3
Ayarladığınızdan emin olun $ANDROID_SDK_PATH sen (yani: SDK yükledim gerçek kök yoluna /opt/android-sdk), ya da sadece doğrudan yolunu koymak (yani: yes | sdkmanager --licenses --sdk_root=/opt/android-sdk)
gmc

Yanıtlar:


365

AndroidSDK nihayet lisansları kabul edebilir.

yes | sdkmanager --licenses

DÜZENLE:

@MoOx tarafından yapılan yorumlarda belirtildiği gibi, macOS'ta yapabilirsiniz

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

Windows'da @pho, @mikebridge ve @ Noitidart tarafından yapılan yorumlarda belirtildiği gibi şunları yapabilirsiniz

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

önce java yüklediğinizden emin olun


4
Dullar üzerinde Çalıştır'a gitmek zorunda kaldım, sonra C:\Users\x1\AppData\Local\Android\sdk\tools\androidbir GUI açıp eksik yükledikten sonra açılan yeni iletişim kutusunda "Liscenses'i Kabul Et" i tıklayın.
Noitidart

8
Bu linux için çalışmıyor. Tools / bin dir altında veya başka bir yerde sdkmanager dosyası yoktur. Yardım edebilir misin lütfen?
Mehmed Mert

36
yes | sudo ~/Library/Android/sdk/tools/bin/sdkmanager --licenses
MacOS'ta

5
Lisans paketinden lisansları otomatik olarak nasıl kabul edebilirim?
Howard Swope

7
yol için @Noitidart'a oy verin, ancak işe yaramadı, komut isteminden C: \ Users \ x1 \ AppData \ Local \ Android \ sdk \ tools \ bin \ sdkmanager --licenses'i çalıştırmam ve "y "+ Bilgi istemlerine girin
GaneshT

177

İle karşılaştım alpha5 önizleme .

Jake Wharton bana şu anda kullanabileceğinizi belirtti

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/licensemakinenizde geçerli klasörü yeniden oluşturmak için . Bu, hata msj ( http://tools.android.com/tech-docs/new-build-system/license ) bağlantısında belirtilen süreçle aynı sonuca sahip olacaktır .

Karma periyodik olarak güncelleneceğini hayal ediyorum lisans metninin sha1s, bu yüzden bu kod sadece çok uzun süre çalışacaktır :)

Ve manuel olarak kurun, ancak bu, grubun yeni özellik amacıdır.

İlk başta, bu androidaraçla adlandırılan bileşenler için lisansları kabul etmiş olsam bile, kutunun dışında çalışmadığına şaşırdım , ancak bana /licensesklasörü oluşturan AS içindeki SDK yöneticisine dikkat çekti .

Resmi araçların yasal nedenlerle bu adımı atlamak istemeyeceğini düşünüyorum.

Sürüm notlarını tekrar okuduğunda

SDK otomatik indirme: Gradle, bir projenin bağlı olduğu eksik SDK paketlerini indirmeye çalışır.

Bu, henüz android araçlarını yüklemediyseniz ve zaten en son lisansları kabul ettiyseniz işe yarayacağı anlamına gelmez.

EDIT: Bunu söyleyerek, ben SDK kadar AS bağlamak kadar benim test gubuntu kutusu üzerinde çalışmıyor. CI olsa iyi çalışıyor - farkın ne olduğundan emin değilim ...


SdkDownload özelliğinde, örneğin support-v4 gibi bazı bileşenlerle ilgili küçük bir aksaklık vardır. Bu olacak Bileşenleri güncellemek ancak gradle sonraki çağırma kadar güncellemeyi görmez. Gradle'ı iki kez yürütmek için bir geçici çözüm, bir kez fırlatmak için: gradle bağımlılıkları || true - code.google.com/p/android/issues/detail?id=212309
Joe Bowbeer

6
mkdir -pyerine kullanabilirsiniz || true.
oldergod

Bu aksaklık için teşekkürler, bilmek güzel. SDK yolunuzun beklendiği gibi tanımlanıp tanımlanmadığını kontrol etmek için: echo $ ANDROID_SDK
tryp

Benim ortamında ANDROID_SDK tanımlı değil, ancak ANDROID_HOME ile çalışır
Dimitri L.

5
@stack_ved: Ben sadece başka ekledik echo: echo -e "\nd56f5187479451eabf01fb78af6dfcb131a6481e" >> "${ANDROID_HOME}/licenses/android-sdk-license". Ama bence problemin başka bir yerde saklanıyor.
Paul

132

En yeni Android Studio (2.3) için, tüm lisansları güncellemenin / kabul etmenin en iyi yolu çalıştırmaktır:

cd $ANDROID_HOME
tools/bin/sdkmanager --licenses

yine de kurulumunuza bağlı olarak lisans dosyalarını başka konumlara kopyalamanız gerekebilir.


Bu gitmek için en iyi yol gibi görünüyor ve tüm platformlarda da çalışır, sadece çalıştırıntools/bin/sdkmanager --licenses
jnv

Eski sdk yöneticisi - lisans çalışma alışkanlık var. Araçlar klasörünü başka bir konuma kopyalamak ve sonra --sdk_root = kullanmak ve sdk klasörünüze yönlendirmek gerekir, ardından araçları daha yeni sürüme güncelleyebilirsiniz.
Mirek Michalak

yesotomatik derleme sistemleri için bir şekilde bu komutu kullanabilir miyiz ? Bu makinelere her zaman etkileşimli konsol erişiminiz olmaz, bu nedenle yklavyeye fiziksel olarak basmak işe yaramaz.
void.pointer

Lütfen bu çözümü nasıl uygulayacağımı bana yol gösterebilir mi? Bu satırı build.sh dosyasına eklemeniz mi gerekiyor?
stack_ved

1
benim için çalıştı ama cd $ANDROID_HOMEbu komutu yerine getirmeden önce yapmalıydım
Inus Saha

57

Yeni sdkmanageryardımcı program için:

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

Evetler arasında biraz gecikme var, bu yüzden komut bir süreliğine gösterilen lisansla askıda kalabilir, ancak insan müdahalesi gerektirmez.


Benim debian9 kurulumunda sadece bir sdkmanager.jar var: android-sdk-linux / tools / lib / sdkmanager.jar ve # java -jar /android-sdk-linux/tools/lib/sdkmanager.jar Hata: Araçlar dizini özelliği ayarlanmadıysa, lütfen android yürüttüğünüzden emin olun
user3313834

1
Bu, SDK araçlarını Google'dan bir arşiv olarak
indirip

Bu en çok up-to-datecevap gibi görünüyor . Artık --licensesyok gibi görünüyor . Not: $ANDROID_HOME/tools/bin/sdkmanager --list
Marinos An

2
İpucu için teşekkürler. yes | android-sdk-linux/tools/bin/sdkmanager --licenses || trueSonunda CI kullanarak kullandım .
iSWORD

es | $ ANDROID_HOME / tools / bin / sdkmanager "build-tools; 28.0.3" -> sürümü değiştirmek benim için çalıştı. Teşekkürler !
ishab acharya

43

Jenkins kullanıyorsanız, oluşturma işleminde ilk adım olarak aşağıdaki bash betiğini kullanabilirsiniz:

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

Bu elbette TÜM kullanılabilir güncellemeleri yükleyecektir, ancak disk alanını boşaltabiliyorsanız size biraz zaman kazandıracaktır. Uyku, kurulum programındaki kırık okuma çizgisinden kaçınmaktır, çünkü "evet" bu durumda düzgün çalışmaz.

EDIT: Ayrıca, yerleşik SDK yöneticisini kullanıyorsanız doğru $ ANDROID_HOME almak için derleme adımında "Android proje önkoşullarını yükle" eklentisini eklemeniz gerekir.


Ben Ubuntu üzerinde çalışan ama hala aşağıdaki hata alıyorum benim jenkins inşa önce "cordova platformu android ekle" önce kod satırını ekleyin: 7s İNŞA BAŞARISIZ Hata: / var / lib / jenkins / çalışma alanı / qa_global_php / platforms / android / gradlew : Komut çıkış kodu 1 ile başarısız oldu. Hata çıktısı: FAILURE: Derleme bir istisna dışında başarısız oldu. * Ne yanlış gitti: 'android' kök projesi yapılandırılırken bir sorun oluştu. > Aşağıdaki SDK bileşenlerinin lisans sözleşmelerini kabul
etmediniz

[Android SDK Derleme Araçları 26.0.2]. Projenizi oluşturmadan önce, Android Studio SDK Yöneticisi'ni kullanarak lisans sözleşmelerini kabul etmeniz ve eksik bileşenlerin kurulumunu tamamlamanız gerekir.
Ashish Karpe

32

Ne yazık ki OP'nin başlangıçta çözdüğü gibi her zaman işe yaramaz. Hata mesajından bulursanız, derlemelerinizin mevcut derleme araçları sürümü nedir . Eksik olan yapı araçlarının daha yüksek bir sürümü olabilir. Bu durumda, SDK Yöneticisi'ni manuel olarak başlatmanız ve oluşturma araçlarını eklemeniz ve lisansı kabul etmeniz gerekir.

OP talimatları uyarınca, aşağıdaki gibi görünür.

$ ./gradlew build

 
Bu yapı için JVM ayarlarını onurlandırmak için yeni bir JVM çatallanır. Lütfen arka plan programını kullanmayı düşünün: https://docs.gradle.org/2.14.1/userguide/gradle_daemon.html.

FAILURE: Derleme bir istisna dışında başarısız oldu.

* Ne yanlış gitti:
': App' projesi yapılandırılırken bir sorun oluştu.
> Aşağıdaki SDK bileşenlerinin lisans sözleşmelerini kabul etmediniz:
  [Android SDK Derleme Araçları 24.0.2].

...
YAPI HATALI OLDU

NOT: 2017-04-16

androidAracı artık yeni lehine önerilmemektedir olmuştur sdkmanager. Lütfen Joe Lawson'un cevabına ve Mart (2017) ve sonrasında gelen gönderilere bakın.

Ardından komutunuzu aşağıdaki gibi ayarlayın:

android update sdk --no-ui --filter build-tools-24.0.2,android-24,extra-android-m2repository
Kaynakları Yenile:
  Https://dl.google.com/android/repository/addons_list-2.xml getiriliyor
  XML'yi doğrula
  XML'i Ayrıştırma
  Getirilen Eklentiler Listesi başarıyla
  Kaynakları Yenile
  URL getiriliyor: https://dl.google.com/android/repository/repository-11.xml
  XML'yi doğrulayın: https://dl.google.com/android/repository/repository-11.xml
  XML'yi Ayrıştırma: https://dl.google.com/android/repository/repository-11.xml
...
Hata: Bilinmeyen paket filtresi 'build-tools-24.0.2' yoksayılıyor
-------------------------------
Lisans kimliği: android-sdk-lisans-xxxxxxxx
Tarafından kullanılan: 
 - SDK Platformu Android 7.0, API 24, revizyon 2
  - Android Destek Deposu, revizyon 39
-------------------------------

...

20 Kasım 2015
'Android-sdk-license-xxxxxxxx' [y / n] lisansını kabul ediyor musunuz?

Arşivleri Yükleme:
  Arşivleri yüklemeye hazırlanma
  SDK Platformu Android 7.0, API 24, revizyon 2 indiriliyor
  SDK Platformunu Yükleme Android 7.0, API 24, revizyon 2
    Yüklü SDK Platformu Android 7.0, API 24, revizyon% 296)
  Android Destek Deposu'nu indirme, düzeltme 39
  Android Destek Deposu'nu yükleme, düzeltme 39
    Yüklü Android Destek Deposu, düzeltme 3999%)
  Bitti. 2 paket kurulu.

Bunu tekrar çalıştırmak, Gradle'ı mutlu etmeyin. Bu yüzden, birisi daha iyi bir şey bulana kadar manuel kabul tek çözümdür. (Lütfen yap!)


1
android update sdk --no-ui --filter build-tools-24.0.2,android-24,extra-android-m2repositorybunu komut istemi aracılığıyla admin hakkıyla çalıştırmak hatayı düzeltti. Phonegap eklenti yöneticisini
Ravimallya

32

bu benim hatamı çözdü

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

2
Birkaç karakteri kaydetmek için yes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;25.0.2"de aynı şeyi yapar.
Flimzy

31

Projeyi Jenkins üzerine inşa ederken de aynı sorunu bulduk. İle buildToolsVersion '25.0.2'lisans oluşturmadan önce kabul etmeliyiz. Bizim durumumuzda:

yes | sdkmanager --update sdkmanager için lisansları kabul eden ve

yes | sdkmanager --licenses daha önce kabul edilmeyen yeni lisansları kabul eden

Unutmayın: bu komutanları aynı kullanıcıyla çalıştırın jenkins. Debian'ımızda Jenkins kullanıcısı sadece jenkins. Başka bir deyişle: rootkabul edilen lisansları oluşturacak şekilde yapmak root, böylece Jenkins bunları okumaz.

Bu arada, biz bulduk sdkmanageren /var/lib/jenkins/tools/android-sdk/tools/bin. Eğer seninki orada değilse, onu bulfind / -name "sdkmanager"


2
bu benim durumumda da sorunu çözdü (26.0.x araçlarını oluştur), Docker'da Jenkins ile. Teşekkürler!
Giordano

1
Ne yazık ki bu sorunun "otomatik" kısmını içermez.
m0skit0

@ m0skit0 Yorumunuz için teşekkürler! İnsan müdahalesi olmadan tüm lisansları otomatik olarak kabul etmek için soruyu son sürüm özelliğiyle eşleşecek şekilde güncelledim.
Roc Boronat

24

androidAracı uygun görülmedi ve kullanmak gerekir sdkmanagerbunun yerine. sdkmanagerlisans dosyasını ilk kabul ettiğinizde de yazar. Komut olsa bile, bu lisansı kullandığınız SDK'ya bağlı olarak değişir

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

bazı sistemlerde çalışır. Hepsi işe yaramaz. Bazı SDK yüklemeleri, lisans dosyasının dosyada yeni satır olmadan bitmesini bekler, bu nedenle -necho komutuna a eklemeyi deneyin .

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

Bu işe yaramazsa, bunun yerine base64 kodlamasını kullanmayı deneyebilirsiniz.

Lisansımı keşfetmek için:

$> 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"

Sizden lisansı kabul etmeniz istenir. Kabul ettikten sonra kopyalanacak ${ANDROID_HOME}/licenses/android-sdk-license. Her zaman tam olarak yazılı olanı aldığınızdan emin olmak için base64.

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

Sonra base64 -ddosyayı tam olarak yeniden oluşturabilirsiniz.

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

Üzerinde bir sha1sum çalıştırarak, yazılan dosyanın beklendiği gibi olup olmadığını doğrulayabilirsiniz.

$> sha1sum ${ANDROID_HOME}/licenses/android-sdk-license
da6b80c9c47b41c0bf7032938e7137a58a3dc249

19

Eğer koşarsan yes | sdkmanager --licenses , o zaman içeriği yazdırmak $ANDROID_HOME/licenses/android-sdk-license,

bunu alacağız

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

8933bad161af4178b1185d1a37fbf41ea5269c55

d56f5187479451eabf01fb78af6dfcb131a6481e

GitLab CI için Android SDK Build-Tools 26.0.2 lisanslarını kabul etmek için bunu çalıştırmanız gerekir

before_script:
  - mkdir -p $ANDROID_HOME/licenses
  - echo "8933bad161af4178b1185d1a37fbf41ea5269c55" > $ANDROID_HOME/licenses/android-sdk-license
  - echo "d56f5187479451eabf01fb78af6dfcb131a6481e" >> $ANDROID_HOME/licenses/android-sdk-license

Sen ikinci yankı aynı olacak $ANDROID_HOME/licenses/android-sdk-licensebu amaçlanıyor? yani. ekleme
Ryan R

1
@RyanR, evet, ikinci yankı Android SDK Build-Tools 26.02ekleniyor, yeni bir lisans sha1 dizesi ekledi
jk2K

Bitbucket boru hatları kullanıyorum, ancak konsept GitLab CI ile aynı görünüyor. Cevabınız tüm süreci daha iyi anlamama yardımcı oldu. Teşekkürler!
17'de Ridcully

@Ridcully Ayrıca Bitbucket Boru Hatları kullanıyorum ve yükseltme yaptığımızda Build-Tools 26.0.2ve yapımız bozulduğunda kendimi burada buldum . Son çözümüm basitçe yapmaktı yes | sdkmanager --licenses. Gerek yok echove bu geleceğin kanıtı.
Ryan R

@Ryan Yani 'evet | sdkmanager - lisansları 'pipeline.yml? Bu harika olurdu!
17'de gülünç

16

Şu anda bu soruya gelen herkes için build-tools-24.0.2'nin (sanırım) artık eskimiş olduğunu ve bu yüzden şunları elde edeceğinizi unutmayın:

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

bunları yüklemek için önerilen çeşitli komutları çalıştırırken.

Çözüm --all:

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

Ayrıca 32bit linux kullanıyorsanız, 23.0.1 derleme araçlarından sonraki her şey sadece 64bit'tir , bu yüzden çalışmaz. 32bit kullanıcıları 23.0.1'de takılı kalır, daha sonra bir derleme aracı almanın tek yolu 64bit'e geçmektir.


1
Evet, yapý-araçlar sadece çarpýldý 25.0.1.
not2qubit

1
Çözümünüz, build-tools-25 ve gradle 4 için başsız bir ubuntu 16 makinesinde çalışmak için bulabildiğim tek şeydi
spartygw

14

Eğer kullanırsanız tools/bin/sdkmanager --licenses, hala insan etkileşimi yapmanız gerekir. Gitlab CI kullanarak sorun yaşıyorum. Bu benim çözümüm:

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 Herhangi bir sorunuz varsa evet diyecektir, ancak yükleme paketi başına bir satır yapmanız gerekir


Birkaç ay sonra hala oldukça alakalı. Teşekkür ederim.
Günümü

Bu benim için de yararlı oldu, ayrıca GitLab kullanıyorum
sebasira

13

Ayrıca şunları da uygulayabilirsiniz:

$ANDROID_HOME/tools/bin/sdkmanager --licenses

Ve Windows'da şunları yürütün:

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

11

SDK api numarası 25 ile ilgili bir hata mesajı için:

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


10

2018'DEN BU SAYI OLAN HERKES İÇİN Tamam. Yukarıdaki cevaplar benim için hiç işe yaramadı. Ne iş Android SDK açıldı - araç çubuğundaki İNDİR düğmesine tıklayın ve uygun paketleri seçin. İndirme işlemi bittikten sonra lisans sözleşmesini kabul etmenizi sağlar.

resim açıklamasını buraya girin


7

Kabul edilen lisans dosyalarıyla ortak bir git repo oluşturarak bu sorunu çözdüm. Sonra projemi oluşturmak için ./gradlew çalıştırmadan önce wgetbir [sdk-dir] / lisanslar dizinine ihtiyacım olan herhangi bir makinede bu lisansları almak için kullanın .


6

Komut satırı SDK'sı ile ilgili sorun yaşayanlar için, kabul ettiğiniz lisansları bulamamasının nedeni, olması gereken yerden farklı bir konuma yazılmış olmasıdır $ANDROID_HOME/licenses.

Bu gibi lisansları kabul etmenin en kolay çözümünü buldum:

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

Not: Bu ANDROID_HOME, sdk'nizin kurulu olduğu yeri gösterecek şekilde ayarladığınızı varsayar .


6

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

veya

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


"Otomatik olarak"
m0skit0

6

Windows için cmd'yi açın ve şu binkomutu çalıştırarak dizine girin :

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

sonra sdkmanager --licenseskomutu çalıştırın , lisansları kabul etmenizi ister.


1
Teşekkürler bu ne yaptım
mynameisjohnj

AnladımError: Unknown argument --licenses
deanwilliammills

4

Sonunda gerçek bir sessiz ve otomatik kurulum için Windows'ta bir çözüm buldum:

Windows'ta, aşağıdaki sözdizimi çalışmaz:

echo y | sdkmanager --licenses

Görünüşe göre "y" toplu iş olarak adlandırılan java programına doğru gönderilmemiştir.

Çözüm, tek tek satırda birkaç "y" içeren y-yxtxt dosyası oluşturmak ve kullanmaktır.

call sdkmanager --licenses < file-y.txt

Bu, lisanslar dizininde gerekli dosyaları oluşturur. Sorun büyük olasılıkla BufferedReader'ın Java ile kullanımı ile ilgilidir.



3

Windows PowerShell'de şunları yapabilirsiniz:

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

Bu çok daha esnektir ve sıfır manuel müdahale gerektirir. 30 sayı isteğe bağlıdır, lisans kabullerinin sayısını karşılamak için yeterli olmalıdır, ancak gerekirse artırılabilir


Windows'u kullanmamak için başka bir neden.
'19

3

Cordova kullanırken aynı hatayla karşılaştım.

Sorun nedeniyle ben Android Studio baştan başa Android SDK yüklü olması idi aptile apt install android-sdk adb. Cordova, ana dizinimdeki dosyalar aptyerine yüklenen dosyaları çağırıyordu .

Ben bash SDK yolunu değiştirdikten sonra çalıştı:

# 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

Sonra artık kullanılmamaktadır edildi sistem dosyalarını kaldırıldı: apt remove android-sdk adb.


3

İşte Docker kurulumum.
Basit bir Linux ortamından takip edebilirsiniz.

Dikkat edin yes |ve --licenses --sdk_root=${ANDROID_HOME}hükümleri. Anlaşmaları geri döndürüyor
gibi görünüyor sdkmanager --update, bu yüzden yes |iki kez ortaya çıktı.

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

"Görünüşe göre sdkmanager --update anlaşmaları geri alıyor, bu yüzden evet | iki kez ortaya çıktı." Vay canına, haklısın. Bu çok sinir bozucu ama iyi bulmak.
cephus

2

Aşağıdaki komutu yürüterek tüm lisansı kabul edebilirsiniz:

 sdkmanager --licenses

Bu, henüz kabul etmediğiniz her lisans için sizi yönlendirir ve yalnızca yher birini kabul etmek için giriş yapabilirsiniz .


"Otomatik olarak"
m0skit0

2

Windows 10 makinesinde yukarıdaki tüm komutları denedim, ancak çözüm, eksik sürümleri yükleyerek lisansları satın almak için SDKMANAGER'i kullanmaktı.

resim açıklamasını buraya girin


CMD komutlarının hiçbiri benim için çalışmadı, sadece bu çözüm. Teşekkürler
deanwilliammills

2

Bu yol son sürümlerde değiştirildi. ./sdkmanagerşimdi içeride /Library/Android/sdk/cmdline-tools/latest/binve sonra sadece

./sdkmanager --licenses

2

Not: Bu yalnızca Mac kullanıcıları içindir

Ben de aynı sorunu vardı ama hiçbir klasör yoktu çünkü hiçbir klasör yardımcı oldu (Mac OS 10.14.4 Android 3.6.3 kullanıyorum)toolsLibrary/Android/sdk.

hata ekran görüntüsü

Aşağıdaki adımlar lisans sorunu hatasının üstesinden gelmeme yardımcı oldu:

  1. Açık Android Studio
  2. Düğmesine basın cmd + shift + A. Bu açılır Actionspencere açar .
  3. SDK ManagerAçmak için arama yapın ve enter tuşuna basın.
  4. Bu, için açılır pencere açar Android SDK. Yüklü olandan başka Android'in başka bir sürümünü seçin. (Benim durumumda Android 10.0 zaten yüklü olduğundan Android 9.0'ı seçtim)
  5. Ardından Applydüğmeyi seçin . Bu, karşılık gelen SDK'yı yükleyecektir.

Çözüm

  1. Şimdi uygulamanızı çalıştırın, herhangi bir istisnasız çalışmalıdır.

başarı ekran görüntüsü


Hey, bu Linuxmint 19.3'te benimkini çözdü
GaryP

1

koşarım

#react-native run-android 

terminalden ve bu sorunu bir araya geldi. Manuel olarak Android Studio'ya gidin -> Android SDK -> SDK Platformu Paket Ayrıntılarını Göster'i tıklayın ve kontrol edin:

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

Paketleri yüklerken, lisansı kabul et => sorunu çözebilir.


1

Mac OSX'te şuraya gidin: sdk/tools/bin

Ardından ./sdkmanager --licensestüm lisansları çalıştırın ve kabul edin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.