Zusätzliches API-Level in Unity-Android-SDK installieren
Neuerdings kann über das Unity-Hub zusätzlich zum Editor auch gleich ein Android SDK installiert werden. Während diese Integration im Prinzip sehr angenehm ist, da sie einem das manuelle Herunterladen, Installieren und Konfigurieren des Android SDKs erspart, ist zunächst nicht klar, ob und wie sich diese minimierte SDK-Version konfigurieren lässt.
Anwendungsfall: Unterstützung älterer Android-Versionen
In meinem konkreten Fall hatte ich ein Projekt, das auch auf Handys mit etwas älteren Android-Versionen laufen soll. Neben der Umstellung der API-Level in den Projekt-Einstellungen muss die entsprechende Version auch vom Android-SDK unterstützt werden. In der neuen eingebetteten SDK-Version ist das nicht der Fall und eine manuelle Installation ist nötig.
Hinzufügen von API-Leveln zum eingebauten Android-SDK in Unity
- Finde zunächst den Installationspfad des eingebauten SDK, z.B. über die Einstellungen:
- Öffne jetzt eine Konsole.
Unter Windows 10:- Klicke auf Start/Windows-Symbol und tippe:
cmd
- Klicke mit der rechten Maustaste auf den Eintrag Eingabeaufforderung und wähle Als Administrator ausführen.
- Klicke auf Start/Windows-Symbol und tippe:
- Gib in die Eingabeaufforderung ein:
chdir
und dann den kopierten Pfad. Über Rechtsklick auf die Titelleiste kannst Du den Text aus der Zwischenablage einfügen. - Drücke dann Enter, um in den Pfad zu wechseln.
- Wechsle in den Werkzeug-Unterordner durch Eingabe von
cd tools\bin
(Enter) - Um nun eine SDK-Version hinzuzufügen, führe einen Befehl wie diesen aus:
sdkmanager "platforms;android-22"
22 steht hier für das API-Level 22, wie in den Project Settings in Unity ablesbar (siehe erster Screenshot oben). - Typische Fehlermeldung:
Warning: File C:\Users\username.android\repositories.cfg could not be loaded.
Warning: Failed to read or create install properties file.
Tritt auf, wenn die Kommandozeile nicht mit Administrator-Rechten gestartet wurde (siehe Anleitung oben).
Gegenprüfung
- Öffne einen Explorer, z.B. durch Eingabe von
explorer ..\..\platforms
im Konsolenfenster. - In diesem Ordner müsste jetzt ein Unterordner mit den Versionsnamen existieren.
Auch bei Gradle-Fehlern nützlich
Mit dem oben beschriebenen Weg sind manchmal auch Gradle-Fehler zu beheben, die beim Erstellen der APK-Datei über File > Build auftauchen.
Failed to install the following Android SDK packages as some licences have not been accepted
Bei diesem Fehler fehlt ein SDK und Gradle kann es nicht selbst installieren. In diesem Fall ablesen welche Version fehlt (hier 27) und wie oben beschrieben manuell installieren: sdkmanager "platforms;android-27"
Failed to install the following SDK components: build-tools, … SDK directory is not writeable
Es kann auch passieren, dass Gradle Werkzeug-Komponenten vermisst und wegen fehlender Administrator-Rechte nicht selbst installieren kann. Auch dies lässt sich manuell korrigieren: sdkmanager "build-tools;28.0.2"
Das fehlende Fragment gibt Gradle in der Fehlermeldung direkt an (build-tools;28.0.2).
Zusammenfassung
Auch 2019 ist die Entwicklung von Mobil-Anwendungen noch immer voller technischer Hürden. Die Integration des Android-SDK in die Unity-Editor-Installation ist zwar gut gemeint, sorgt in der Praxis aber erstmal für zusätzliche Herausforderungen, sobald die Projektanforderung von der Voreinstellung abweicht.
Über eine Kommandozeile mit Admin-Berechtigung lassen sich SDK-Versionen und Werkzeuge manuell installieren, was sich bei einigen Gradle-Fehlern im Build-Vorgang als nützlich erweist.