Hat es jemand geschafft, Android SDK-Plattformen auf einem kopflosen Linux-Server zu aktualisieren / zu installieren? Ich habe nur folgenden Fehler erhalten:
Es scheint, als ob die Aktion "update sdk" tatsächlich nicht unterstützt wird?
~/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)
Update : Die Frage wurde vor einiger Zeit gestellt, als das kopflose Update nicht unterstützt wurde. Es ist jetzt möglich, nur eine zu tun android update sdk --no-ui
. Danke Leute!
Antworten:
Das kopflose und automatische Aktualisieren des Android SDK wird unter "Es gibt eine Möglichkeit, die Android-SDK-Installation zu automatisieren" beschrieben
quelle
android update sdk --no-ui
Installiert ALLE Plattformen, von Eclair bis Marshmallow. Um dies zu verhindern, müssen Sie den Parameter --filter verwenden, z. B.android update sdk --no-ui --filter 1,2
nur für die Plattform-Tools und SDK-Tools wie ADB und Fastboot. Die vollständige Liste der Filter finden Sie unterandroid list sdk
tools.android.com/recent/updatingsdkfromcommand-lineSie können die
--no-ui
Option verwenden:android update sdk --no-ui
Wenn Sie es automatisieren möchten, können Sie alle Lizenzen akzeptieren, indem Sie das
expect
Tool mit diesem Hack verwenden (die--accept-license
Option ist derzeit nicht vollständig in dasandroid
Tool integriert):expect -c ' set timeout -1; spawn android - update sdk --no-ui; expect { "Do you accept the license" { exp_send "y\r" ; exp_continue } eof } '
quelle
--accept-license
Flag hinzugefügt . In der Zwischenzeit können Sieecho "y" | android update sdk --no--ui
Ich bin gerade auf das gleiche Problem gestoßen. Ich habe jedoch eine Problemumgehung gefunden.
Das erste ist ein Cop-out: Laden Sie die Plattformen auf einem Headed-System herunter und kopieren Sie einfach die Plattform-Unterverzeichnisse in Ihr Android SDK / Platforms-Verzeichnis.
Wenn Sie wie ich keinen sofortigen Zugriff auf eine andere Android-Entwicklerumgebung haben, können Sie in den SDK-Archiven von Google eines der anderen SDKs herunterladen, die die Plattformen enthalten. Auf diese Weise können Sie jedoch nur für Android 1.1 und 1.5 entwickeln.
Der Download für Linux-Systeme ist Android 1.5 r3. Natürlich sind die SDK-Download-Seiten von Google nicht luchsfreundlich, daher musste ich den direkten Link von einem anderen GUI-System erhalten.
wget http://dl.google.com/android/archives/android-sdk-linux_x86-1.5_r3.zip
Dann müssen Sie nur noch das Archiv entpacken und die Plattform-Sibdirs in Ihr neueres SDK-Plattformverzeichnis verschieben.
android create avd -t 3 -p path/to/avd/dir -n "name"
Dadurch wird eine AVD für die 1.5-Plattform mit Ihrem angegebenen Namen und Verzeichnis erstellt. Beachten Sie, dass das avd-Verzeichnis nicht existieren sollte. Wenn Sie überschreiben möchten, fügen Sie dem Befehl --force hinzu.
Wenn Sie so weit kommen, ist eine Plattform installiert und eine AVD erstellt. Leider ist der Versuch, eine Version zu erstellen, zu diesem Zeitpunkt für mich fehlgeschlagen, da ich einen 64-Bit-Server verwende und Google nur 32-Bit-Tools veröffentlicht.
Ich habe in der akzeptierten Antwort auf diese Frage
sudo apt-get install ia32-libs
zum Stapelüberlauf eine Lösung dafür gefunden und damit die 32-Bit-Tools ausführen können.Dann sollten Sie in der Lage sein, das Android-Tool auf der CLI zu verwenden, um entweder ein Eclipse-Projekt (für 1.5 oder niedriger) in ein Ant-Build-System zu konvertieren, oder Sie können ein neues Projekt erstellen, an dem Sie arbeiten können.
Hoffe das hilft!
quelle
Ja, es funktioniert, aber Sie müssen die GUI-Bibliotheken installiert haben und Ihr DISPLAY muss auf den X-Server eingestellt sein, den es anzeigen soll. Ich habe es jetzt unter CentOS 5.4 und musste die Installationsoption "Server - GUI" gegenüber "Server" verwenden. Dann benutze ich einfach "ssh -X" von dem System, auf dem es angezeigt werden soll.
quelle
Ich habe gerade ein kleines Befehlszeilentool erstellt, das das Update in jeder Umgebung (GUI oder Nicht-GUI) ausführt. Ich hatte keine Gelegenheit, es ausgiebig zu testen, aber soweit ich das beurteilen kann, macht es das, was es sollte.
Das Befehlszeilentool aktualisiert ein vorinstalliertes Basis-Android-SDK mit allen derzeit verfügbaren Plattformen, Add-Ons, Extras, Dokumenten, Beispielen und Tools. Dies sollte für einen Build-Server ausreichen (ich benötige dies für meine Hudson CI-Installation mit Maven).
Bitte gehen Sie hier für weitere Details:
http://code.google.com/p/android-sdk-tool
quelle