Gagal mengalokasikan memori: 8

369

Mulai hari ini, ketika saya mencoba menjalankan aplikasi di NetBeans pada platform Android 2.3.3, itu menunjukkan kepada saya bahwa:

Gagal mengalokasikan memori: 8

Aplikasi ini telah meminta Runtime untuk menghentikannya dengan cara yang tidak biasa. Silakan hubungi tim dukungan aplikasi untuk informasi lebih lanjut.

dan Emulator tidak mau memulai.

Ini untuk pertama kalinya ketika saya melihatnya, dan google tidak memiliki asnwers untuk ini, saya mencoba bahkan dengan 2 versi NetBeans 6.9.1 dan 7.0.1, masih kesalahan yang sama.

Δεηις Hoςς
sumber
3
Hanya ingin tahu mengapa Anda menggunakan NetBeans vs Eclipse. Saya menggunakan NetBeans untuk hal-hal lain (yaitu php), tetapi baru saja menemukan lebih mudah untuk menggunakan eclipse untuk hal-hal android. Apa yang menurut Anda manfaat dari gerhana?
SBerg413
3
Saya tidak pernah menggunakan Eclipse sebelumnya, tapi saya tidak tahu mengapa, saya benci, alasannya, ini bahkan rumit di GUI vs NetBeans, tetapi untuk saat ini saya mengunduhnya, untuk mencoba, jika masalahnya hilang, saya akan membuat Barang-barang Android hanya ada di dalamnya.
Denees
47
Wow, komentar itu adalah pembantaian koma. Pokoknya, pastikan AVD Anda menggunakan jumlah RAM yang sesuai (yaitu, cukup untuk dijalankan tetapi tidak lebih dari yang dapat ditangani oleh komputer Anda). Ini diatur ketika Anda membuat perangkat virtual.
Glendon Trullinger
2
Hanya untuk referensi, saya memiliki Core i7 dengan 16g ram, maxxed ram pada AVD saya dan mereka semua sangat lamban: /
Jack
1
Saya memiliki mesin Windows 8 64bit yang berjalan pada prosesor Intel core i7. Saya harus mengubah pengaturan ram untuk AVD (Nexus 7) ini menjadi 512mb agar dapat berjalan.
IgorGanapolsky

Jawaban:

373

Saya menemukan jawabannya. Masalahnya adalah dalam jumlah ram yang saya tentukan untuk mesin virtual, dan itu 1024MB, sekarang saya memiliki 512MB dan tidak apa-apa, sekarang saya perlu menemukan cara meningkatkan jumlah ram ini, 512 tidak begitu banyak, dan Mesinnya agak lambat.

Denees
sumber
20
Saya memiliki masalah yang sama dengan ini. Saya memiliki 8GB RAM di mesin saya, dengan 6GB duduk bebas sementara emulator Android memberi tahu saya bahwa ia tidak dapat mengalokasikan 1GB?
Strozykowski
5
Saya juga memiliki 8GB Ram, tetapi SDK memberi tahu saya bahwa saya tidak dapat menggunakannya lebih dari 512 :)
Denees
5
Satu lagi perbaikan untuk ditambahkan. Terkadang, pengaturan RAM ke nilai yang lebih rendah tidak berfungsi. Jika demikian, coba luncurkan emulator dari commandline dengan sesuatu sepertiemulator-x86 -avd <your_avd_name>
Mykhailo Gaidai
14
Baru saja solusinya: perlu menentukan resolusi AVD dengan paksa: 800 x 1280. Ini memulai AVD saya seperti yang saya butuhkan
Nirav Shah
4
Masalahnya berasal dari tampilan kulit yang menambahkan nilai 1024 ke hw.ramSizedalam config.ini ( Device Ram Sizedalam daftar Hardware GUI). Pastikan untuk memilih "kulit" yang memiliki nilai lebih rendah, atau menggunakan resolusi manual dan menghapus garis ini dari daftar Perangkat Keras - Anda tidak dapat menghapusnya ketika kulit dipilih.
RedGlyph
61

Mengacu pada Android: gagal mengalokasikan memori dan komentar pertama di bawah jawaban yang diterima, mengubah "1024" menjadi "1024MB" membantu saya. Menyedihkan, tapi berhasil.

Fenix ​​Voltres
sumber
29
'MB' tidak dikenali oleh emulator, memaksanya untuk menggunakan nilai default 256 MB. Ketahuilah bahwa jumlah yang Anda tentukan bukan yang akan Anda dapatkan!
RedGlyph
1
Mencari di bawah Aplikasi, Runnning, mencantumkan jumlah total memori hingga kira-kira 240MB, jadi sepertinya itu kembali ke 256 MB.
jishi
Tambahkan di jendela Konfigurasi Jalankan parameter -memory 512 dari tautan ini memperbaikinya untuk saya
GatesReign
43

Dalam hal ini:

  • Menggunakan bawaan WXGA720 untuk mensimulasikan perangkat 720p, selalu ada kesalahan ini
  • Atur resolusi AVD secara manual ke 720 x 1280, bekerja untuk saya

semoga membantu ~

RRTW
sumber
Serupa di sini, Default untuk 7 "WXGA800 gagal dan pengaturan 800 x 1280 bekerja.
xandy
30

Bekerja dengan 512 Mb sebagai gantinya. Tidak ada metode di atas yang berfungsi untuk saya.

slash33
sumber
Kesalahan "Gagal mengalokasikan memori: 8" menghilang setelah mengurangi ukuran RAM dari 1024 menjadi 768 Mib.
curd0
banyak dari mereka mengatakan hal yang sama untuk memperbaiki ukuran 512 MB. Tapi itu tidak berhasil sama sekali
Steve
30

Segala sesuatu yang Anda baca di sini dan di tempat lain adalah dugaan murni. Satu-satunya cara pasti untuk memperbaiki masalah ini adalah memilih laporan bug ini .

Masalahnya tidak terkait dengan resolusi emulator atau OpenGL, atau berapa banyak memori yang dimiliki komputer Anda. Saya memiliki memori 24GB di komputer saya dan sebagian besar waktu saya berjalan dengan hw.ramSize=1024saya mendapatkan kesalahan 8. Lain kali itu berfungsi dengan baik tanpa perubahan konfigurasi. Saya harap Anda mengetahui bahwa: Saya tidak mengubah konfigurasi emulator sama sekali, namun terkadang berjalan dan terkadang gagal.

Ada kemungkinan besar itu ada hubungannya dengan fragmentasi memori. Saya sarankan mengurangi nilai hw.ramSizesebagai solusi sementara.

Gili
sumber
2
Dengan segala hormat, jawaban Anda adalah dugaan murni juga; Bagi saya, saya tidak memiliki masalah menjalankan perangkat yang ditiru dengan RAM virtual yang ditetapkan setinggi 2048 (saya tidak mencoba yang lebih tinggi). Namun perangkat itu hanya akan berjalan ketika saya mengakses mesin saya melalui Remote Desktop . Jadi bagi saya, ini tentu saja masalah grafis dan bukan masalah fragmentasi memori. Saya dapat membuktikan hal ini dengan melompat-lompat di antara bolak-balik antara lokal dan jauh. Sesi yang sama, contoh yang sama dari manajer AVD, hanya tidak ada kartu NVIDIA yang mengerikan dan driver mereka dalam satu skenario. (Tapi itu kata-kata kasar untuk utas lainnya).
s.co.tt
Jika itu adalah "RAM fragmentasi", kita mungkin dapat mengujinya dengan menggunakan salah satu dari program "RAM defragmentasi" yang konyol itu, kan?
Pengguna
17

Sepertinya ada seribu perbaikan berbeda untuk ini ... tidak ada yang di atas yang berfungsi untuk saya, tetapi yang berhasil adalah meluncurkan AVD dari baris perintah emulator-arm.exe @ AVD-NAME

Entah bagaimana jika diluncurkan dengan hanya emulator.exe, saya akan mendapatkan pesan kesalahan yang sama daripada ketika mencoba meluncurkan melalui Eclipse.

Vincent Demers
sumber
Anda mungkin memiliki masalah yang sama dengan saya. File DLL dimuat ketika Anda memulai emulator dari satu tempat dan tidak jika Anda memulai dari yang lain.
mjaggard
14

Saya menyadari solusi untuk masalah ini berasal dari alokasi memori Eclipse ketika Anda menjalankan aplikasi dalam mode normal. Saya baru saja mencentang kotak "Run as Administrator" di bawah properti pintas untuk Eclipse dan sekarang memungkinkan saya untuk mengalokasikan lebih banyak memori untuk AVD.

Semoga itu bisa membantu.

Mahan H
sumber
13

Saya telah mengatasi masalah ini dengan mengubah ukuran layar perangkat.

Saya telah menemukan bahwa jika Anda menentukan ram 1024 mb maka Anda harus menentukan ukuran layar perangkat dalam hdpi saja dan jika ram 512 mb maka mdpi atau yang lainnya.

Jadi, Kita dapat dengan jelas mengatakan bahwa ukuran ram harus ditentukan sesuai dengan ukuran layar. Jika Anda menentukan ukuran ram 1024 dengan tetap menjaga ukuran layar perangkat dalam mdpi maka itu menghasilkan kesalahan yang disebutkan di atas yaitu "Gagal mengalokasikan memori: 8 Aplikasi ini telah meminta Runtime untuk menghentikannya dengan cara yang tidak biasa.

Silakan hubungi tim dukungan aplikasi untuk informasi lebih lanjut. "

atau

tentukan pilihan Anda dalam manajer AVD sebagai berikut:

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

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

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

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

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

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

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

Vsw10
sumber
Ini berhasil: [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 = none [2015-07-23 12:54:59 - SDK Manager] hw.gps = yes [2015-07-23 12:54:59 - SDK Manager] skin.dynamic = tidak [2015-07-23 12:54:59 - SDK Manager] hw.keyboard = yes [2015-07-23 12:54:59 - SDK Manager] vm.heapSize = 32 [2015-07-23 12:54 : 59 - SDK Manager] hw.ramSize = 512
user914425
6

Saya memeriksa semua solusi lain yang disebutkan di utas ini dan tidak menemukan apa pun yang berfungsi, jadi saya mencari-cari sedikit. Versi Google API gagal pada saya karena beberapa alasan. Saya mengubahnya kembali ke vanilla dan tidak ada lagi crash.

Saya harus memiliki beberapa masalah lain tetapi mungkin ini akan membantu seseorang ...

Helico
sumber
Aneh. Saya disetel ke versi vanilla, tetapi beralih ke Google API menyelesaikannya. Beri +1 untuk gagasan itu!
Paul
6

Lihat edisi resmi 33930 . Ada yang menunjukkan, bahwa itu mungkin ada hubungannya dengan start up OpenGL selama dimulainya emulator. Yang lain menulisnya hanya macet ketika mereka menggunakan WXGA800-skin dan menyarankan untuk secara manual mengatur resolusi ke 800x1280.

Lebih lanjut ada file ZIP yang disediakan untuk menurunkan secara manual SDK android Anda ke versi 19 dan plattform-tools ke versi 11. Ini dapat membantu memperbaiki masalah ini untuk sementara.

Maks
sumber
Ini mungkin terkait dengan masalah saya. File DLL dimuat ketika Anda memulai emulator dari satu tempat dan tidak jika Anda memulai dari yang lain.
mjaggard
Pasti ada lebih dari itu. Pengaturan pertama ke WXGA800 kemudian mengubahnya ke resolusi manual 1280x800 masih crash AVD. Hanya menghapus hw.ramSize=1024pemecahan masalah (Anda tidak dapat melakukannya jika WXGA dipilih, Anda perlu menggunakan pengaturan resolusi manual).
RedGlyph
5

Saya memiliki 16 GB dan prosesor quad core 3,4 Ghz di mesin saya. Mesin virtual tidak akan membiarkan saya menjalankannya di 1024. Saya melakukan peningkatan hingga 878MB karena gagal pada 880 dengan pesan yang sama. Ini tampaknya menjadi ram paling saya dapat mengalokasikan ke emulator. Ini masih lambat tapi saya berasumsi lebih baik dari 512MB.

sondlerd
sumber
5

Saya mengubah pengaturan DPI monitor saya dari opsi peluncuran AVD dan menyinkronkannya dengan pengaturan asli dan saat ini dari monitor saya, dan itu berhasil.

GEEK Droid
sumber
4

Saya dipecahkan dengan menempatkan sebagai ukuran penyimpanan 2 kali ukuran RAM, dan dengan menempatkan ukuran penyimpanan SD sama dengan ukuran RAM.

Francesco Belladonna
sumber
3

Saya memiliki masalah yang sama tetapi sebelum saya mendapatkan masalah itu meminta saya untuk mengambil sumber video.

Saya menonaktifkan dukungan kamera dan saya dapat menggunakannya 1024MB of RAM.

Menggunakan Windows 64bit, Xoom (Android 3.0).

Barry Carter
sumber
3

Dalam kasus saya, mengubah resolusi layar dari WVGA720 ke WSVGA bekerja untuk saya.

Mabicho
sumber
3

Masalahnya ada pada fragmentasi memori. OS harus mengalokasikan semua ram yang Anda tentukan untuk vm (katakanlah 1Gb) sebagai satu blok kontinu. Terkadang tidak ada blok seperti itu. Untuk memperbaikinya tutup menjalankan program, kemudian jalankan AVD dan mulai mesin virtual Anda.

Dave
sumber
2

Apa yang berhasil bagi saya di Windows adalah:

1) Clipping Eclipse 2) Menjalankan Avd UI 3) Menutup semua proses yang berjalan, terutama yang berat dalam memori, seperti Chrome, explorer.exe, dll. 4) Mulai emulator 5) Menangkan

Oren Bengigi
sumber
2

Pastikan IntelHAXM diinstal dengan benar. Tidak cukup untuk mengunduh dan "menginstal" melalui SDK Manager. Anda harus menginstalnya secara manual dari:

android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager

Juga, pastikan bahwa Intel Virtual Technology diaktifkan di BIOS Anda.

Ikuti panduan di developer.android.com atau instruksi instalasi Intel .

pegel
sumber
2

Anda hanya perlu mengedit ram perangkat virtual Anda, membuatnya lebih rendah! Coba 20 MB, dan itu akan berhasil!

pengguna2062658
sumber
1

Saya perhatikan itu terkait dengan hanya satu dan semua yang saya telah bekerja dengan baik. Saya menghapusnya dan membuat yang baru dan sekarang berfungsi.

Jason Crosby
sumber