Speicher konnte nicht zugeordnet werden: 8

369

Als ich heute versuchte, eine App in NetBeans auf einer 2.3.3-Android-Plattform auszuführen, zeigte mir Folgendes:

Speicher konnte nicht zugeordnet werden: 8

Diese Anwendung hat die Runtime aufgefordert, sie auf ungewöhnliche Weise zu beenden. Bitte wenden Sie sich an das Support-Team der Anwendung, um weitere Informationen zu erhalten.

und der Emulator will nicht starten.

Dies ist das erste Mal, wenn ich es sehe, und Google hat keine Antworten dafür. Ich habe sogar mit 2 Versionen von NetBeans 6.9.1 und 7.0.1 versucht, immer noch den gleichen Fehler.

Δεηις Hoςς
quelle
3
Nur neugierig, warum Sie NetBeans vs Eclipse verwenden. Ich benutze NetBeans für andere Dinge (nämlich PHP), habe es aber gerade einfacher gefunden, Eclipse für Android-Sachen zu verwenden. Was sind Ihrer Meinung nach die Vorteile gegenüber Eclipse?
SBerg413
3
Ich habe Eclipse noch nie benutzt, aber ich weiß nicht warum, ich hasse es, der Grund, es ist sogar kompliziert in GUI vs NetBeans, aber im Moment lade ich es herunter, um zu versuchen, wenn das Problem verschwindet, werde ich es machen Android Zeug nur drin.
Denees
47
Wow, dieser Kommentar war ein Komma-Massaker. Stellen Sie auf jeden Fall sicher, dass Ihre AVD eine angemessene Menge an RAM verwendet (dh genug, um ausgeführt zu werden, aber nicht mehr, als Ihr Computer verarbeiten kann). Dies wird festgelegt, wenn Sie das virtuelle Gerät erstellen.
Glendon Trullinger
2
Nur als Referenz, ich habe einen Core i7 mit 16 GB RAM, maxxed out RAM auf meinen AVDs und sie sind leider alle verzögert: /
Jack
1
Ich habe einen Windows 8 64-Bit-Computer, der auf einem Intel Core i7-Prozessor ausgeführt wird. Ich musste die RAM-Einstellungen für diese AVD (Nexus 7) auf 512 MB ändern, damit sie ausgeführt werden konnte.
Igor Ganapolsky

Antworten:

373

Ich habe es herausgefunden. Das Problem lag in der Menge an RAM, die ich für die virtuelle Maschine angegeben hatte, und es war 1024 MB, jetzt habe ich 512 MB und es ist in Ordnung, jetzt muss ich herausfinden, wie ich diese Menge an RAM verbessern kann, 512 ist nicht so viel und Die Maschine ist etwas nachlässig.

Denees
quelle
20
Ich habe das gleiche Problem damit. Ich habe 8 GB RAM auf meinem Computer, wobei 6 GB frei sitzen, während der Android-Emulator mir mitteilt, dass er nicht 1 GB zuweisen kann.
Strozykowski
5
Ich habe auch 8 GB RAM, aber SDK sagt mir, dass ich es nicht mehr als 512 verwenden kann :)
Denees
5
Noch ein Fix zum Hinzufügen. Manchmal funktioniert es nicht, den Arbeitsspeicher auf niedrigere Werte einzustellen. In diesem Fall versuchen Sie, den Emulator über die Befehlszeile mit etwas wieemulator-x86 -avd <your_avd_name>
Mykhailo Gaidai
14
Ich habe gerade die Lösung erhalten: Ich muss die AVD-Auflösung genau angeben: 800 x 1280. Es startet meine AVD als das, was ich benötigt habe
Nirav Shah
4
Das Problem tritt bei jedem Display-Skin auf, der hw.ramSizein der config.ini ( Device Ram Sizein der Hardwareliste der GUI) den Wert 1024 hinzufügt . Stellen Sie sicher, dass Sie entweder eine "Skin" mit einem niedrigeren Wert auswählen oder eine manuelle Auflösung verwenden und diese Zeile aus der Hardwareliste entfernen. Sie können sie nicht entfernen, wenn eine Skin ausgewählt ist.
RedGlyph
61

In Bezug auf Android: Es konnte mir kein Speicher zugewiesen werden, und der erste Kommentar unter der akzeptierten Antwort hat mir geholfen, "1024" in "1024 MB" zu ändern. Erbärmlich, funktioniert aber.

Fenix ​​Voltres
quelle
29
'MB' wird vom Emulator nicht erkannt, sodass er den Standardwert von 256 MB verwenden muss. Beachten Sie, dass der von Ihnen angegebene Betrag nicht dem entspricht, den Sie erhalten!
RedGlyph
1
Unter Apps führt Runnning die Gesamtspeichermenge auf ca. 240 MB auf, sodass sie anscheinend auf 256 MB zurückgesetzt wird.
Jishi
Fügen Sie im Fenster "Konfigurationen ausführen" den Parameter "Speicher 512" über diesen Link hinzu, der für mich
behoben wurde
43

In meinem Fall:

  • Bei Verwendung des integrierten WXGA720 zur Simulation eines 720p-Geräts wurde immer dieser Fehler angezeigt
  • Manuelles Einstellen der AVD-Auflösung auf 720 x 1280, funktioniert bei mir

hoffe es hilft ~

RRTW
quelle
Ähnlich hier, Die Standardeinstellung für 7 "WXGA800 ist fehlgeschlagen und die Einstellung 800 x 1280 funktioniert.
Xandy
30

Funktioniert stattdessen mit 512 MB. Keine der oben genannten Methoden funktioniert bei mir.

slash33
quelle
Der Fehler "Speicher konnte nicht zugeordnet werden: 8" verschwand, nachdem die RAM-Größe von 1024 auf 768 Mib reduziert wurde.
Curd0
Viele von ihnen sagen dasselbe, um die Größe von 512 MB zu korrigieren. Aber es hat überhaupt nicht funktioniert
Steve
30

Alles andere, was Sie hier und anderswo lesen, ist reine Vermutung. Der einzige sichere Weg, um dieses Problem zu beheben, ist die Abstimmung für diesen Fehlerbericht .

Das Problem hängt weder mit der Emulatorauflösung oder OpenGL noch mit dem Arbeitsspeicher Ihres Computers zusammen. Ich habe 24 GB Speicher in meinem Computer und die meiste Zeit, in der ich arbeite, erhalte hw.ramSize=1024ich Fehler 8. In anderen Fällen funktioniert es einwandfrei ohne Konfigurationsänderungen. Ich hoffe, Sie haben das bemerkt: Ich habe die Emulatorkonfiguration überhaupt nicht geändert und manchmal läuft sie und manchmal schlägt sie fehl.

Es besteht eine hohe Wahrscheinlichkeit, dass dies etwas mit der Speicherfragmentierung zu tun hat. Ich empfehle, den Wert von hw.ramSizeals vorübergehende Problemumgehung zu reduzieren .

Gili
quelle
2
Bei allem Respekt ist Ihre Antwort auch eine reine Vermutung; Für mich ist es kein Problem, ein emuliertes Gerät mit einem virtuellen RAM von bis zu 2048 auszuführen (ich habe es nicht höher versucht). Diese Geräte werden jedoch nur ausgeführt, wenn ich über Remotedesktop auf meinen Computer zugreife . Für mich ist es also sicherlich ein Grafikproblem und kein Problem der Speicherfragmentierung. Ich kann dies zuverlässig beweisen, indem ich meine Sitzung zwischen lokal und remote hin und her springe. Dieselbe Sitzung, dieselbe Instanz des AVD-Managers, nur keine schrecklichen NVIDIA-Karten und ihre gottesfürchtigen Treiber in einem Szenario. (Aber das ist ein Scherz für einen anderen Thread).
am
Wenn es sich um "RAM-Fragmentierung" handelt, könnten wir das wahrscheinlich mit einem dieser albernen kostenlosen "RAM-Defragmentierungs" -Programme testen, oder?
Benutzer
17

Es sieht so aus, als gäbe es tausend verschiedene Korrekturen dafür ... keine der oben genannten hat bei mir funktioniert, aber es hat funktioniert, die AVD über die Befehlszeile emulator-arm.exe @ AVD-NAME zu starten

Wenn ich nur mit emulator.exe gestartet würde, würde ich die gleiche Fehlermeldung erhalten wie beim Versuch, über Eclipse zu starten.

Vincent Demers
quelle
Sie könnten das gleiche Problem haben wie ich. Die DLL-Dateien werden geladen, wenn Sie den Emulator von einem Ort aus starten und nicht, wenn Sie von einem anderen Ort aus starten.
mjaggard
14

Ich habe festgestellt, dass die Lösung für dieses Problem auf der Eclipse-Speicherzuweisung beruht, wenn Sie die Anwendung im normalen Modus ausführen. Ich habe gerade das Kontrollkästchen "Als Administrator ausführen" unter den Verknüpfungseigenschaften für Eclipse aktiviert und kann jetzt mehr Speicher für die AVD zuweisen.

Ich hoffe, das hilft.

Mahan H.
quelle
13

Ich habe dieses Problem durch Ändern der Bildschirmgröße des Geräts behoben.

Ich habe festgestellt, dass, wenn Sie 1024 MB RAM angeben, Sie die Bildschirmgröße des Geräts nur in HDPI angeben müssen. Wenn es 512 MB RAM ist, sollte es MDPI oder andere sein.

Wir können also klar sagen, dass die RAM-Größe entsprechend der Bildschirmgröße angegeben werden sollte. Wenn Sie die RAM-Größe 1024 angeben, während die Bildschirmgröße des Geräts in mdpi beibehalten wird, führt dies zu dem oben genannten Fehler: "Fehler beim Zuweisen von Speicher: 8 Diese Anwendung hat die Runtime aufgefordert, sie auf ungewöhnliche Weise zu beenden.

Bitte wenden Sie sich an das Support-Team der Anwendung, um weitere Informationen zu erhalten. "

oder

Nehmen Sie Ihre Optionen im AVD-Manager wie folgt vor:

[2013-01-11 14:44:01 - SDK Manager] hw.sensors.orientation = yes

[2013-01-11 14:44:01 - SDK Manager] hw.camera.front = keine

[2013-01-11 14:44:01 - SDK Manager] hw.gps = yes

[2013-01-11 14:44:01 - SDK Manager] skin.dynamic = no

[2013-01-11 14:44:01 - SDK Manager] hw.keyboard = no

[2013-01-11 14:44:01 - SDK Manager] vm.heapSize = 32

[2013-01-11 14:44:01 - SDK Manager] hw.ramSize = 343

Vsw10
quelle
Dies funktionierte: [2015-07-23 12:54:59 - SDK Manager] disk.dataPartition.size = 500M [2015-07-23 12:54:59 - SDK Manager] hw.gpu.enabled = yes [2015- 07-23 12:54:59 - SDK Manager] hw.audioInput = yes [2015-07-23 12:54:59 - SDK Manager] hw.sensors.orientation = yes [2015-07-23 12:54:59 - SDK Manager] hw.camera.front = keine [2015-07-23 12:54:59 - SDK Manager] hw.gps = yes [2015-07-23 12:54:59 - SDK Manager] skin.dynamic = nein [2015-07-23 12:54:59 - SDK Manager] hw.keyboard = ja [2015-07-23 12:54:59 - SDK Manager] vm.heapSize = 32 [2015-07-23 12:54 : 59 - SDK Manager] hw.ramSize = 512
user914425
6

Ich habe alle anderen in diesem Thread erwähnten Lösungen durchgesehen und nichts gefunden, was funktionierte, also habe ich ein wenig herumgespielt. Die Google-Version der API ist aus irgendeinem Grund bei mir fehlgeschlagen. Ich habe es wieder auf Vanille umgestellt und keine Abstürze mehr.

Ich muss ein anderes Problem haben, aber vielleicht hilft das jemandem ...

Helico
quelle
Seltsam. Ich war auf die Vanille-Version eingestellt, aber das Umschalten auf die Google-API löste das Problem. +1 für die Idee sowieso!
Paul
6

Schauen Sie sich die offizielle Ausgabe 33930 an . Es wird darauf hingewiesen, dass dies möglicherweise mit dem Start von OpenGL während des Starts des Emulators zu tun hat. Andere haben geschrieben, dass es nur abstürzt, wenn sie WXGA800-Skin verwenden, und schlagen vor, die Auflösung manuell auf 800x1280 einzustellen.

Außerdem werden ZIP-Dateien bereitgestellt, mit denen Sie Ihr Android SDK manuell auf Version 19 und plattform-tools auf Version 11 herunterstufen können. Dies kann auch dazu beitragen, das Problem zeitlich zu beheben.

Max
quelle
Dies könnte mit meinem Problem zusammenhängen. Die DLL-Dateien werden geladen, wenn Sie den Emulator von einem Ort aus starten und nicht, wenn Sie von einem anderen Ort aus starten.
mjaggard
Da muss mehr dran sein. Wenn Sie es zuerst auf WXGA800 einstellen und dann auf eine manuelle Auflösung von 1280 x 800 ändern, stürzt AVD immer noch ab. Nur das Entfernen des hw.ramSize=1024Problems löst das Problem (wenn WXGA ausgewählt ist, müssen Sie keine manuellen Auflösungseinstellungen verwenden).
RedGlyph
5

Ich habe 16 GB und einen 3,4-GHz-Quad-Core-Prozess in meinem Computer. Die virtuelle Maschine lässt mich auch nicht um 1024 ausführen. Ich habe es auf 878 MB erhöht, weil es bei 880 mit derselben Nachricht fehlgeschlagen ist. Dies scheint der größte RAM zu sein, den ich dem Emulator zuweisen kann. Es ist immer noch langsam, aber ich gehe davon aus, dass es besser als 512 MB ist.

sondlerd
quelle
5

Ich ändere die DPI-Einstellungen meines Monitors über die Startoptionen von AVD und synchronisiere sie mit der ursprünglichen und aktuellen Einstellung meines Monitors. Es hat funktioniert.

Droide GEEK
quelle
4

Ich habe das Problem gelöst, indem ich als Speichergröße das Zweifache der RAM-Größe und die SD-Speichergröße als RAM-Größe angegeben habe.

Francesco Belladonna
quelle
3

Ich hatte das gleiche Problem, aber bevor ich das Problem bekam, wurde ich gebeten, eine Videoquelle aufzunehmen.

Ich habe die Kameraunterstützung deaktiviert und konnte sie verwenden 1024MB of RAM.

Verwenden von Windows 64bit, Xoom (Android 3.0).

Barry Carter
quelle
3

In meinem Fall funktioniert die Änderung der Bildschirmauflösung von WVGA720 auf WSVGA für mich.

Mabicho
quelle
3

Das Problem liegt in der Speicherfragmentierung. Das Betriebssystem muss den gesamten RAM, den Sie für VM angegeben haben (z. B. 1 GB), als einen fortlaufenden Block zuweisen. Manchmal gibt es keinen solchen Block. Um dies zu beheben, schließen Sie laufende Programme, führen Sie dann avd aus und starten Sie Ihre virtuelle Maschine.

Dave
quelle
2

Was für mich unter Windows funktioniert hat, war:

1) Schließen von Eclipse 2) Ausführen der Avd-Benutzeroberfläche 3) Schließen aller laufenden Prozesse, insbesondere solcher mit hohem Arbeitsspeicher, wie Chrome, explorer.exe usw. 4) Starten Sie den Emulator 5) Win

Oren Bengigi
quelle
2

Stellen Sie sicher, dass IntelHAXM korrekt installiert ist. Es reicht nicht aus, es über den SDK-Manager herunterzuladen und zu "installieren". Sie müssen es manuell installieren von:

android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager

Stellen Sie außerdem sicher, dass Intel Virtual Technology in Ihrem BIOS aktiviert ist.

Befolgen Sie die Anleitung auf developer.android.com oder die Installationsanweisungen von Intel .

Pegel
quelle
2

Sie müssen nur den RAM Ihres virtuellen Geräts bearbeiten, um ihn niedriger zu machen! Versuchen Sie 20 MB, und es wird funktionieren!

user2062658
quelle
1

Mir ist aufgefallen, dass es nur mit einem von allen anderen zu tun hat, bei denen ich gut gearbeitet habe. Ich habe es gelöscht und ein neues erstellt und jetzt funktioniert es.

Jason Crosby
quelle