Tidak dapat menjalankan dex: Batas overhead GC terlampaui di Eclipse


213

Ketika saya mengunduh OsmAnd proyek Git dan pergi untuk mengkompilasinya, Eclipse mengembalikan kesalahan ini:

[Dex Loader] Unable to execute dex: GC overhead limit exceeded
[OsmAnd]     Conversion to Dalvik format failed: 
             Unable to execute dex: GC overhead limit exceeded

Google dan Stackoverflow mengatakan bahwa saya harus berubah -Xms40m -Xmx384mdi eclipse.ini. Konversi ke format Dalvik gagal: Tidak dapat menjalankan dex: Java heap space .
Saya membersihkan proyek dan memulai kembali Eclipse, tetapi itu tidak membantu.

Saya menemukan tautan ini: Kiat untuk pengembang Android: "Konversi ke format Dalvik gagal: Tidak dapat menjalankan dex: null" Tetapi saya tidak tahu .jardari proyek mana saya ingin mengganti input. Jika ada yang bisa membantu, saya dapat mengirim proyek ke mereka.

Jawaban:


437

Itu dapat diperbaiki dengan mengubah nilai VM di Eclipse.ini. Tetapkan nilai ke 512 dan 1024 seperti di bawah ini:

openFile
--launcher.XXMaxPermSize
512M
-showsplash
org.eclipse.platform
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms512m
-Xmx1024m

Area yang diubah dalam gambar masukkan deskripsi gambar di sini


8
Terima kasih. Saya bertanya-tanya mengapa default masih sangat tidak memadai, saya tidak berpikir ada orang yang menjalankan gerhana dengan kurang dari 512/1024 - saya hanya pergi bahkan dua kali lipat. Plus saya berharap pengaturan disimpan dalam beberapa file konfigurasi di direktori home saya alih-alih file ini yang ditimpa dengan setiap upgrade.
Yashima

11
Apakah Anda perlu --launcher.XXMaxPermSize 512mdua kali?
Andrew Wyld

4
Berapa batasan angka-angka ini? Seberapa tinggi saya harus mempertimbangkan untuk meletakkannya?
easycheese

5
@MuhammadRiyaz Tergantung pada OS Anda dan apakah Anda menggunakan JVM 32-bit atau 64-bit. Jika Anda menggunakan JVM 64 bit, Anda dapat dengan aman mengaturnya untuk sesuatu yang lebih kecil dari ukuran RAM dikurangi overhead untuk OS / aplikasi lain. Pada VM 32 bit, Anda ingin menyimpannya lebih kecil dari sekitar 1500M (di Linux) atau 1100M (di Windows) karena VM perlu mengalokasikan ruang alamat yang berdekatan, dan itu adalah sumber daya yang sangat terbatas untuk aplikasi 32-bit.
Jules

4
-XX: MaxPermSize = 1024m -Xms1024m -Xmx2048m membantu
kreker

24

Bagi saya langkah-langkah berikut berhasil

1) Open eclipse.ini file
2)changed
-Xms40m
-Xmx512m
to 
-Xms512m
-Xmx1024m

3)Restart eclipse

Lihat disini


11
Pada file OSX eclipse.ini ada di Eclipse.app/Contents/MacOS/
Ahmad Baraka

7

ini terlihat seperti ini.

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20140116-2212
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-XX:MaxPermSize=256m
-Xms40m
-Xmx512m
-Xmx1024m

5

Biarkan saya berasumsi masalah ini disebabkan karena Android XML, karena sangat sering Anda membukanya

Dua masalah berikut ini di StackOverFlow saling terkait:

Setiap kali saya mengklik file Android XML di Eclipse, itu memuat data untuk semua versi API

dan

Tidak dapat menjalankan dex: Batas overhead GC terlampaui

Saya menemukan satu solusi lagi untuk menyelesaikan masalah ini selain meningkatkan nilai VM atau menurunkan versi ke versi ADT yang lebih lama (22.6.2 atau 23.2)

catatan:

Beberapa versi ADT yang lebih lama yang tidak akan memuat XML masing-masing dan setiap kali Anda membuka sehingga tidak ada kehabisan memori yang menyebabkan batas overhead GC ini terlampaui sebagaimana dibahas pada utas pertama.

Larutan:

Di bagian bawah gerhana akan ada simbol Tempat Sampah yang menyatakan Jalankan Sampah Kolektor . Setiap kali Anda menutup file XML android jangan lupa klik Trash Can atau Run Garbage Collector untuk melepaskan memori. Dengan cara ini Anda dapat melindungi ruang kerja dari menabrak kesalahan semacam ini: D

Ini bisa menjadi solusi akhir karena Anda tidak dapat meningkatkan nilai VM di luar batas RAM Anda jika Anda sering membuka XML android Anda terutama jika Anda melakukan banyak UI bekerja seperti saya: P

Saya harap ini akan membantu semua orang yang akan datang ke utas ini :)

Tetap Tenang dan Tetap Aktifkan Kode


1

Setelah 12 jam dengan kesalahan ini dan tidak berhasil mengubah file eclipse.ini akhirnya saya menemukan solusi yang tepat. Dalam variabel lingkungan saya ada variabel bernama "_JAVA_OPTIONS" yang berisi nilai "-Xmx512M". Mengubah nilai ini ke nilai yang sama seperti di eclipse.ini (-Xmx4096M) saya sekali lagi dapat mengekspor proyek saya ke file APK.


sebenarnya ini bisa menjadi tip yang sangat penting, Anda dapat menghapus _JAVA_OPTIONS dari variabel sistem Anda (gunakan editor lingkungan cepat) jika tidak proguard mungkin mulai mengeluh karena beberapa alasan. Terima kasih banyak untuk Viktor
Simon

1

Saya TIDAK tahu alasan di balik perbaikan ini, tetapi ini bekerja untuk saya sepanjang waktu ketika semua hal di atas tidak.

Jangan mulai gerhana dari jalan pintas atau tautan. Selalu buka dari eclipse.exedalam folder gerhana Anda, folder yang memegangeclipse.ini

Catatan - Saya mencoba hanya untuk linux.


1

Untuk menghindari pesan yang menjengkelkan ini, saya harus mengubah konfigurasi saya sebagai berikut:

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20120913-

144807
-product
com.android.ide.eclipse.adt.package.adtproduct
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
1024m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.6
-XX:MaxPermSize=256m
-Xms512m
-Xmx1024m

berdasarkan jawaban yang ditandai sebagai benar, berubah

-XX:MaxPermSize=256m
-Xms512m
-Xmx1024m

dan:

--launcher.XXMaxPermSize
1024m

1
1) Open eclipse.ini file
2)change
-Xms40m
-Xmx512m
to 
-Xms512m
-Xmx1024m
3)Restart eclipse

File eclipse.ini yang sama akan berlokasi di Eclipse di jalur root eclipse itu sendiri seperti:

C:\Users\username\Downloads\adt-bundle-windows-x86_64-20140702\eclipse\eclipse.ini

File yang sama akan berlokasi di proyek studio android: -

C:\Users\username\AppData\Local\Android\sdk\tools\lib\monitor-x86_64\monitor(Type:Configuration settings)

0

Jika jawaban ini tidak berhasil (Tidak cocok untuk saya) maka coba ini:

1) Buat salinan folder .metadata Anda di ruang kerja Anda.

2) Hapus direktori .metadata Anda SETELAH MENGHASILKAN SALINAN

3) Buka Eclipse dan tutup Eclipse.

4) Salin folder plugin Anda dari .metadata lama ke .metadata Anda yang baru

5) Impor semua proyek kembali ke ruang kerja Anda

6) Tetap Tenang dan Tetap Aktif!

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.