2010-01-28 15 views
74

Android SDK platformlarını başsız bir Linux sunucusunda güncelleme/yükleme işleminde herhangi biri var mı? Tüm sahip olduğum aşağıdaki hata:Başsız Linux'ta "android update sdk"

Eylem "güncelleştirme sdk" aslında desteklenmiyor gibi görünüyor?

~/android-sdk-linux_86/tools$ ./android --verbose update sdk 
No command line parameters provided, launching UI. 
See 'android --help' for operations from the command line. 
Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-pi-gtk-3550 or swt-pi-gtk in swt.library.path, java.library.path or the jar file 
     at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source) 
     at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source) 
     at org.eclipse.swt.internal.gtk.OS.<clinit>(Unknown Source) 
     at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source) 
     at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source) 
     at org.eclipse.swt.widgets.Display.<clinit>(Unknown Source) 
     at com.android.sdkuilib.internal.repository.UpdaterWindowImpl.open(UpdaterWindowImpl.java:93) 
     at com.android.sdkuilib.repository.UpdaterWindow.open(UpdaterWindow.java:110) 
     at com.android.sdkmanager.Main.showMainWindow(Main.java:281) 
     at com.android.sdkmanager.Main.doAction(Main.java:251) 
     at com.android.sdkmanager.Main.run(Main.java:92) 
     at com.android.sdkmanager.Main.main(Main.java:81) 

Güncelleme: başsız güncelleme desteklenmediği zaman soru bir süre önce istendi. Artık sadece android update sdk --no-ui yapmak mümkündür. Teşekkürler millet!

+3

olası yinelenen (http://stackoverflow.com/questions/ 4681697/var-bir-otomatikleştirmek-android-sdk-yükleme) –

cevap

3

Evet, işe yarıyor ama GUI kitaplıklarına ihtiyacınız var ve DISPLAY ürününüzün görüntülemek istediğiniz X sunucusuna ihtiyacınız var. Şimdi CentOS 5.4 üzerinde çalışıyorum ve "Sunucu - GUI" verse "Sunucu" yükleme seçeneğini kullanmak zorunda kaldı. Sonra sadece "ssh -X" i kullanmak istediğim sistemden kullanıyorum.

+0

daha somut bir örnek verebilir misiniz? – Matthias

7

Sadece aynı soruna rastladım. Yine de bir çözüm buldum.

Bunlardan birincisi bir çıkış noktasıdır: Platformları başlı bir sistemde indirin ve platform alt dizinlerini android sdk/platform dizinine kopyalayın.

Benim gibi başka bir sanal gerçeklik ortamına anında erişemezseniz, Google'ın SDK arşivlerine gidebilir ve platformları içeren diğer SDK'lardan birini indirebilirsiniz. Bu şekilde sadece Android 1.1 ve 1.5 için geliştirebileceğiniz anlamına gelir.

Linux sistemleri için indirme işlemi Android 1.5 r3. Tabii ki, google'ın sdk indirme sayfaları lynx-dostu değil, bu yüzden başka bir GUI sisteminden direkt link almak zorunda kaldım.

wget http://dl.google.com/android/archives/android-sdk-linux_x86-1.5_r3.zip 

O zaman sadece arşiv Ayıklama, ve daha yeni bir SDK platformu dir platform sibdirs hareketli meselesi.

android create avd -t 3 -p path/to/avd/dir -n "name" 

Bu, belirtilen ad ve dizininiz ile birlikte 1,5 platform için bir AVD oluşturur. Avd dir'in mevcut olmaması gerektiğini unutmayın. Üzerine yazmak istiyorsanız, komuta --force ekleyin.

Başlarken bu bir platform yüklü ve bir AVD oluşturur. Maalesef, bu noktada başarısız olmaya çalışıyorum çünkü 64 bitlik bir sunucu çalıştırdım ve google sadece 32bit araçları piyasaya sürdü.

this stackoverflow question kabul edilen yanıtında bunun için bir çözüm buldum ve 32bit araçlarını çalıştırma yeteneğini etkinleştirmek için sudo apt-get install ia32-libs kullandı. O zaman bir ant tahlili sistemine sahip olmak için (1.5 ya da daha düşük) bir tutulma projesini dönüştürmek için CLI'daki android aracını kullanabilmeniz ya da çalışmaya başlamanız için yeni bir proje oluşturmasını sağlayabilmeniz için CLI'daki android aracı kullanabilmeniz gerekir.üzerinde.

Bu yardımcı olur umarız!

3

Herhangi bir ortamda güncelleştirmeyi (GUI veya GUI olmayan) yapan küçük bir komut satırı aracı oluşturdum. Bunu kapsamlı bir şekilde test etme şansı yoktu, ama söyleyebildiğim kadarıyla gerekeni yapıyor.

Komut satırı aracı, mevcut tüm platformlar, eklentiler, ekstralar, dokümanlar, örnekler ve araçlar ile önceden yüklenmiş bir Android SDK tabanını günceller. Bu bir yapı sunucusu için yeterli olmalıdır (bunu Maven ile Hudson CI kurulumum için gerekli).

fazla bilgi için buraya gidin:

http://code.google.com/p/android-sdk-tool

75

açıklanmıştır:

android update sdk --no-ui 

Eğer '' Otomatikleştirmeyi sevdim '' ile tüm lisansları expect aracını kullanarak kabul edebilirsiniz. Bu hack (--accept-license seçenek şu anda tamamen android aracında entegre edilmemiştir): [? android sdk kurulumu otomatik hale getirmek için bir yolu var mı]

expect -c ' 
set timeout -1; 
spawn android - update sdk --no-ui; 
expect { 
    "Do you accept the license" { exp_send "y\r" ; exp_continue } 
    eof 
} 
' 
+9

çalıştırın, sonraki sürüm '--accept-license' bayrağı ekleyecektir. Bu arada, "yankılanabilir" y | android update sdk --no - ui' – Snicolas

+3

- şu an --accept-lisansı yok :( – x2on

+0

@Snicolas Bunun için bir kaynağınız var mı? Gördüğüm referanslar, parametre olarak belirli bir lisans numarası gerektiriyor gibi görünüyor ve büyük olasılıkla iç kullanım için olabilir .. Yanlış olmak isterim ... – mateor