Konwersja do formatu Dalvik nie powiodła się: nie można wykonać dex: przestrzeń sterty Java


79

Dodałem plik jar o wielkości 2,45 MB do mojego projektu zaćmienia w systemie Android i nadal otrzymuję komunikat „Konwersja do formatu Dalvik nie powiodła się: Nie można wykonać dex: przestrzeń sterty Java” bez względu na to, co zrobię.

Szukałem informacji w Internecie i zostałem poinformowany, żebym zaktualizował plik eclipse.ini, aby zwiększyć ilość maszyn wirtualnych Java. Zrobiłem to dla wszystkich wartości w eclipse.ini i nadal otrzymuję błąd kompilacji.

Jakieś pomysły?


Czy możesz opublikować linie dodane do zaćmienia?
— CRM

-startup plugins / org.eclipse.equinox.launcher_1.1.0.v20100507.jar --launcher.library plugins / org.eclipse.equinox.launcher.win32.win32.x86_1.1.1.R36x_v20100810 -product org.eclipse.epp.package .java.product --launcher.defaultAction openFile --launcher.XXMaxPermSize 512M -showsplash org.eclipse.platform --launcher.XXMaxPermSize 512m --launcher.defaultAction openFile -vmargs -Dosgi.requiredJavaVersion = 1,5 -Xms512m -Xmx512m
— AndroidPlaya

ja też mam tylko wpisy -data @noDefault w moim init: próbowałem dodać różne kody, w tym -Xms512m -Xmx512m i -vmargs -Xms512m -Xmx512m w różnych wersjach z tymi dwoma wierszami. są też sugestie dotyczące dodania około 20 kolejnych linii kodu, które również wypróbowałem. ktoś musi opublikować KOMPLETNE wiersze kodu potrzebne w exclipse.ini, od góry do dołu i czy jakiekolwiek ścieżki do plików w dodanym kodzie muszą być dostosowane, co będzie inne dla różnych konfiguracji
— Androidcoder

Próbowałem również uruchomić z wiersza poleceń za pomocą eclipse -vmargs -Xms512m -Xmx512m, co nie zadziałało
— Androidcoder

Odpowiedzi:


209

Modyfikacja -XmsAmi -XmxBmparametrach, w eclipse.initak, że są one wystarczająco duże. Wartość domyślna to -Xms40m -Xmx384m. Spróbuj zmienić je na -Xms512m -Xmx512mi uruchom ponownie zaćmienie, aby zobaczyć, czy to pomoże. Jeśli nie, kontynuuj zwiększanie wartości i restartuj zaćmienie, aż nastąpi jedna z dwóch rzeczy:

  1. Twoja kompilacja jest ukończona.
  2. Eclipse nie uruchomi się ponownie, ponieważ nie masz wystarczającej ilości pamięci.

eclipse.iniznajduje się /etc/eclipse.iniw Ubuntu (zakładając, że zainstalowałeś Eclipse z repozytoriów Ubuntu).

W przypadku MAC zobacz:

Znalezienie eclipse.ini jest trochę trudne. Aby go zlokalizować, kliknij prawym przyciskiem myszy ikonę aplikacji Eclipse i wybierz opcję „Pokaż zawartość pakietu”, a następnie kliknij dwukrotnie folder „Zawartość”, a następnie kliknij dwukrotnie folder „MacOS”, w którym znajduje się plik eclipse.ini.

https://confluence.sakaiproject.org/pages/viewpage.action?pageId=61341742


8
Ta strona opisuje, jak znaleźć eclipse.ini na komputerze Mac.
— JohnnyLambada,

7
W systemie Windows znajduje się tuż obok eclipse.exe, gdziekolwiek go umieścisz.
— Cheezmeister

1
Jedyne wpisy, które mam, to -data @noDefault Proszę o poradę
— Roy Hinkley

@JohnnyLambada Cześć Johny Dodałem plik jar 7mb i zmieniłem zmienną xms na 1024m dla obu. Ale teraz otrzymuję ten błąd Konwersja do formatu Dalvik nie powiodła się z błędem 1
— Gaurav Arora

1
Flaga Xmx określa maksymalną pulę alokacji pamięci dla wirtualnej maszyny języka Java (JVM), podczas gdy Xms określa początkową pulę alokacji pamięci zgodnie z tą odpowiedzią SO.
— JohnnyLambada

20

Czasami ten problem powoduje również sprawdzenie biblioteki .jar we właściwościach projektu. W takim przypadku spróbuj wykonać następujące czynności:

Right click your project. 
Go to Properties -> Java Build Path -> Order and Export.
Uncheck the check box against your included library. 
Press OK and run the project.

Robiąc to, Eclipse weźmie tylko te klasy, które są potrzebne w kodzie, z jar, zamiast przechowywać wszystkie klasy z jar.


5
Usunięcie zaznaczenia biblioteki z opcji „Zamów i eksportuj” powoduje wyrzucenie wyjątku „ClassNotFoundException”, gdy do klasy z tej biblioteki uzyskuje się dostęp z poziomu kodu. Biblioteki powinny zostać wyeksportowane.
— Vaishak Nair,

Tak, zgadza się, otrzymuję błąd Java Heap Error, kiedy odznaczam całą bibliotekę, uruchamia się, ale aplikacja ulega awarii na urządzeniu, proszę mi pomóc ..
— AK Joshi

0

Wszystkie powyższe odpowiedzi są doskonałe, ale możesz spróbować jeszcze jednej rzeczy i jest to szybkie i łatwe, zamknąć wszystkie niepotrzebne otwarte projekty w obszarze roboczym Eclipse, a następnie ponownie uruchomić Eclipse.

Możesz także zwiększyć parametry -XmsAm i -XmxBm w eclipse.ini.


Mam ten sam problem, próbowałem też, zmiany rozmiaru pamięci. Ale problem nie został rozwiązany. Wreszcie zrobiłem, Project Explorer -> prawy przycisk myszy -> Maven -> zaktualizuj projekt. Mój problem został rozwiązany. Po ostatniej kasie powinienem zrobić aktualizację Mavena. Ale popełniłem błąd.
— Niedziela,

@Ravi, jak rozwiązujesz błąd, daj mi również znać.
— Sandeep Londhe

0

Przejdź do właściwości projektu i usuń dodane biblioteki ze ścieżki budowania Java, kliknij OK, a następnie ponownie dodaj je ponownie. Ja też stanąłem przed tym problemem, dzięki czemu rozwiązałem ten problem.


To naprawdę zadziałało z eclipse ADT @AndroidHacker
— noman404

-1

Ważny dodatek:

Rozwiązanie nie działało na moim Windowsie (prawdopodobnie problemy z alokacją pamięci), ale działało dobrze na Linuksie na tym samym komputerze. Zatem instalacja innego systemu operacyjnego pomogłaby w ponownej instalacji systemu Windows.


Właśnie ponownie zainstalowałem mój system operacyjny ... nie działa. Wymieniłem też płytę główną na wszelki wypadek i kupiłem nowy dysk twardy, który również nie działał.
— Kapitein Witbaard
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.