Archiv für den Monat: Juli 2015

Android Studio: Projektstart schlägt fehl

Situation

Ich sollte einen neuen Rechner für die Entwicklung von Android-Apps einrichten. Als Betriebssystem kam Kubuntu 14.10 (64 bit) zum Einsatz, darauf ein JDK 8, und für die eigentliche Entwicklung Android Studio.

Problem

Bei Starten des ersten Projekts zeigte sich allerdings ein unerwartetes Verhalten:

Im Log tauchte fünfmal die Meldung

Android/Sdk/build-tools/22.0.1/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory

auf, und danach ebensooft

Exception in thread "png-cruncher_3" java.lang.RuntimeException: Timed out while waiting for slave aapt process, try setting environment variable SLAVE_AAPT_TIMEOUT to a value bigger than 5 seconds

(wobei die Zahl am png-cruncher immer mal eine andere war).

Danach passierte dann überhaupt nichts mehr. Gradle meldete in der Statuszeile brav Gradle: Executing Tasks [:app:assembleDebug] , und ließ sich davon auch nicht mehr abbringen. Am Ende konnte ich die IDE nur noch mit einem kill beenden.

Lösung

Wie sich herausstellte, besteht dieses Problem nur auf 64-bit-Systemen. Zwei Bibliotheken müssen zusätzlich in ihren 32-bit-Versionen installiert werden, und dann läuft alles, wie es soll:

sudo apt-get install libstdc++6:i386 zlib1g:i386

NetBeans kann Maven nicht finden

Kürzlich bei der Vorbereitung einer Java-EE-Schulung

Der Kunde wünschte sich als Umgebung:

Im NetBeans-Bundle ist Maven bereits dabei, allerdings in Version 3.0.5. Kein Problem, dachte ich mir, das sollte ja recht einfach sein.

  • aktuelles Maven runterladen
  • auspacken nach C:\
  • in NetBeans “Maven Home” auf das neue Verzeichnis setzen (Menü Tools – Menüeintrag Options – Bereich Java – Tab Maven)
  • fertig.

Beim ersten “Run” kam aber statt des erwarteten Downloading dieses, Downloading jenes ... ein schlichtes

Der Befehl "mvn.bat" ist entweder falsch geschrieben oder konnte nicht gefunden werden.

bzw. auf englisch

'mvn.bat' is not recognized as an internal or external command, operable program or batch file.

Nach etwas Bingen (wenn wir schon mal unter Windows sind) fand ich dann die Ursache: NetBeans verwendet auf Windows-Systemen mvn.bat, um Maven zu starten, jedoch verschwand dieses bereits mit Version 3.3.1 aus der Distribution.

Stattdessen findet sich (die auch vorher bereits vorhandene) Datei mvn.cmd, und damit ist die Lösung dann recht unkompliziert:

  • Die fehlende mvn.bat im Verzeichnis C:\apache-maven-3.3.3\bin-Verzeichnis anlegen
  • und dort diesen Text hineinschreiben

(exakt so)

"%~dp0\mvn.cmd" %*

Jetzt findet NetBeans die mvn.bat, ruft sie auf, die wiederum leitet an mvn.cmd weiter, und alle sind glücklich.

In der Schulung fiel dann zwar kurzzeitig der Beamer aus, aber NetBeans und Maven funktionierten anstandslos.