Kiedy pobrałem projekt Git OsmAnd i poszedłem go skompilować, Eclipse zwrócił te błędy:
[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 i Stackoverflow powiedział, że muszę zmienić -Xms40m
-Xmx384m
w eclipse.ini
.
Konwersja do formatu Dalvik nie powiodła się: Nie można wykonać dex: przestrzeni sterty Java .
Wyczyściłem projekt i zrestartowałem Eclipse, ale to nie pomogło.
Znalazłem ten link: Wskazówki dla programistów Androida: „Konwersja do formatu Dalvik nie powiodła się: Nie można wykonać dex: null”
Ale nie wiem, .jar
z którego projektu mogę zmienić dane wejściowe. Jeśli ktoś może pomóc, mogę wysłać projekt do im.
java
android
out-of-memory
dalvik
DavyJonesUA
źródło
źródło
--launcher.XXMaxPermSize 512m
dwa razy?Dla mnie zadziałały następujące kroki
Spójrz tutaj
źródło
eclipse.ini wygląda tak.
źródło
Załóżmy, że ten problem spowodowany jest przez XML XML, ponieważ bardzo często go otwierasz
Poniższe dwa problemy dotyczące StackOverFlow są ze sobą powiązane:
Za każdym razem, gdy klikam plik XML systemu Android w Eclipse, ładuje on dane dla wszystkich wersji API
i
Nie można wykonać dex: Przekroczono limit obciążenia GC
Znalazłem jeszcze jedno rozwiązanie rozwiązania tego problemu, oprócz zwiększenia wartości maszyn wirtualnych lub obniżenia do starszej wersji ADT (22.6.2 lub 23.2)
Uwaga:
Niektóre starsze wersje ADT, które nie ładują XML za każdym razem, gdy otwierasz, więc nie ma przepełnienia pamięci, które spowodowałoby przekroczenie limitu obciążenia GC, jak omówiono w pierwszym wątku
Rozwiązanie:
Na dole zaćmienia znajduje się symbol kosza na śmieci, który mówi Run Garbage Collector . Gdy zamykasz plik XML Androida, nie zapomnij kliknąć Kosza lub Uruchom Garbage Collector aby zwolnić pamięć. W ten sposób możesz zabezpieczyć obszar roboczy przed awarią tego rodzaju błędu: D
To może być najlepsze rozwiązanie, ponieważ nie możesz zwiększyć wartości VM powyżej limitu pamięci RAM, jeśli bardzo często otwierasz Android XML, szczególnie jeśli wykonujesz wiele interfejsów użytkownika, takich jak ja: P
Mam nadzieję, że pomogłoby to wszystkim, którzy przejdą do tego wątku :)
Zachowaj spokój i kod włączony
źródło
Po 12 godzinach z tym błędem i bez powodzenia przy zmianie pliku eclipse.ini w końcu znalazłem właściwe rozwiązanie. W moich zmiennych środowiskowych była zmienna o nazwie „_JAVA_OPTIONS” zawierająca wartość „-Xmx512M”. Zmieniając tę wartość na tę samą, co w eclipse.ini (-Xmx4096M), po raz kolejny mogłem wyeksportować mój projekt do pliku APK.
źródło
NIE znam przyczyny tego obejścia, ale działa to dla mnie przez cały czas, gdy wszystkie powyższe nie.
Nie zaczynaj zaćmienia za pomocą skrótu lub linku. Zawsze otwieraj go
eclipse.exe
w folderze Eclipse, w tym samym folderze, w którym znajduje sięeclipse.ini
Uwaga - próbowałem tylko dla systemu Linux.
źródło
Aby uniknąć tego irytującego komunikatu, musiałem zmienić konfigurację w następujący sposób:
na podstawie odpowiedzi oznaczonej jako poprawna, zmieniająca się
i:
źródło
Ten sam plik eclipse.ini będzie znajdować się w Eclipse w tej ścieżce katalogu głównego zaćmienia:
Ten sam plik będzie znajdować się w projekcie Android Studio: -
źródło
Jeśli te odpowiedzi nie działają (nie dla mnie), spróbuj tego:
1) Wykonaj kopię swojego folderu .metadata w swoim obszarze roboczym.
2) Usuń katalog .metadata PO WYKONANIU KOPII
3) Otwórz środowisko Eclipse i zamknij środowisko Eclipse.
4) Skopiuj folder wtyczek ze starej .metadata do nowej .metadata
5) Zaimportuj wszystkie projekty z powrotem do swojego obszaru roboczego
6) Zachowaj spokój i kod włączony!
źródło