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?

AndroidPlaya
źródło
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

JohnnyLambada
źródło
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.

Mihir Shah
źródło
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.

GOLDEE
źródło
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.

noman404
źródło
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.

Aleksandra Uchowa
źródło
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