Ich arbeite für eine kleine Android-Spielentwicklungsfirma und momentan habe ich ein Problem. Ich betreibe eine hübsche Standard-Windows 7 x64-Maschine mit Eclipse und dem Android SDK.
Ich habe die LogCat-Ausgabe für mein Programm gelesen und mich gefragt, warum mein Spiel nicht auftauchen würde. Ich sah schnell, dass der ganze Heap wuchs, und dachte, ich könnte zu viele Texturen / zu viele Texturen haben usw. Ich habe das Problem auf das Laden von Texturen aufmerksam gemacht, dann habe ich begonnen DDMS zu benutzen und bemerkte, dass mein Heap nicht über 19MB anwachsen würde. Ich schneide ein paar Texturen aus und versuche wieder zu bauen und zu rennen. Zu meinem Schrecken würde der Haufen nicht konsequent über 6,6 MB wachsen. Hat jemand irgendwelche Vorschläge?
tl; dr: Mein Heap wurde auf 19MB vergrößert und fiel dann aus, also nahm ich Texturen heraus, die speicherintensiver waren, um sie unter 19MB im Heap zu halten, und jetzt wächst mein Heap nicht über 6.6MB hinaus .
EDIT: Logcat-Ausgabe, wenn größere Texturen herausgenommen werden:
%Vor%Dies ist der Müllsammler feuernd. Unglücklicherweise, ohne Quelle, wird hier niemand Ihnen helfen können.
Aber es sieht so aus, als ob Sie WAY zu viele Objekte instanziieren und der Garbage Collector fast ständig feuert.
Hallo. Ich bin mir nicht sicher, ob meine Antwort richtig ist, aber ich hatte ein ähnliches Problem.
Das Problem lag in der Erstellung einer neuen Textur für ein Objekt. Ich habe es zu oft gemacht und das Ergebnis war eine ähnliche Ausnahme. Meine Lösung: Bevor ich eine neue Textur auf das Objekt setzte, löschte ich die alte.
Zum Beispiel:
%Vor%Oder:
%Vor%