Heap Size bei Xamarin-Projekten erhöhen
Lesedauer: < 1 Minute

Teilweise kommt es vor, dass meine Android-App, welche ich mit Xamarin.Forms oder auch Xamarin Native entwickle, nicht mehr bauen möchte. Sobald man die App zum Debuggen starten möchte, erhält man nach einer geringen Wartezeit eine Fehlermeldung. Diese besagt, dass man doch bitte die Eigenschaft JavaMaximumHeapSize erhöhen sollte. In diesem Beitrag möchte ich nun kurz aufzeigen, wie man diesen Fehler schnell und unkompliziert lösen kann.

Grundsätzlich gibt es zwei verschiedene Möglichkeiten dieses Problem zu lösen. Die erste Variante ist das Editieren der .csproj-Datei des Android-Projekts oder aber das visuelle Editieren innerhalb von Visual Studio.

Für mich ist der einfachere Weg das Editieren der .csproj-Datei, welche ich zum Beispiel in Notepad++ öffne. Anschließend suche ich nach dem Tags PropertyGroup und füge hier den folgenden Eintrag innerhalb des Tags hinzu:

<JavaMaximumHeapSize>1G</JavaMaximumHeapSize>

Dies muss für alle PropertyGroups wiederholt werden, da für jede einzelne Build-Konfiguration eine andere PropertyGroup verwendet wird. Später möchte man ja auch, dass das Problem nicht nur in einem Debug-Build gelöst ist, sondern in allen möglichen Varianten.

Für die zweite Variante klickt man mit einem Rechtsklick auf das Android-Projekt in Visual Studio und wählt den Eintrag Properties aus. Nun wechselt man in den Tab Android Options und klickt hier auf den Button Advanced.

Hier kann man den Eintrag Java Max Heap Size editieren und direkt 1G eintragen. Man muss hier nur beachten, dass dieser Vorgang für alle relevanten Build-Konfigurationen vorgenommen werden muss. Genau aus diesem Grund würde ich auch zur ersten Variante raten, da man viel schneller das Tag hinzugefügt hat, als diese Eigenschaft direkt in Visual Studio gesetzt hat.

Anschließend führt man einen Reload des Projekts durch oder speichert die Änderungen ab und ab diesem Zeitpunkt sollte dann auch das Debugging bzw. das Builden des Android-Projekts funktionieren.

DataTemplateSelector: Verschiedene DataTemplates für eine Liste Demo: Xamarin.Forms Material Visual Extension Methods: Object