Mam duży projekt Android, w którym dostałem Nie można wykonać dex: ID metody nie w [0, 0xffff]: 65536 błąd; Wierzę, że niektórzy z was zdecydowanie przeszli przez ten problem wcześniej. Jest to błąd spowodowany zbyt wieloma metodami wymienionymi w aplikacji.Wdrażanie MultiDex powoduje kompilację na tak długi, a na końcu błąd sterty przestrzeni.
Szukałem różnych źródeł w Internecie i znalazłem this może być najlepszym rozwiązaniem.
i zrobiłem, co następuje:
- Dodany
multiDexEnabled = true
w blokudefaultConfig
z build.gradle. Dodano następującą zależność:
dependencies { compile 'com.android.support:multidex:1.0.0' }
Overrided następujący kod w mojej klasie App.
@Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); }
Teraz, błąd zniknął, ale mam nowy problem. Kiedy uruchomić aplikację, kompilator trwa dłużej niż 3 minuty do kompilacji i uruchamiania aplikacji, w końcu daje mi ten błąd:
UNEXPECTED TOP-LEVEL ERROR:
java.lang.OutOfMemoryError: Java heap space
Rozumiem ten błąd występuje ze względu na duże zużycie pamięci, ale nie wiem jak to rozwiązać. Używam Androida Studio 1.0.2 i Androida API 21.
Dzięki!
EDIT:
już sprawdzone How to fix “OutOfMemoryError: java heap space” while compiling MonoDroid App in MonoDevelop, ale ta nie obejmuje przyczynę problemu, a co więcej, nie używam Xamarin Studio.
EDIT2:
Dokładna objawem jest tak:
Kiedy skompilować kod, konsola Gradle pokazuje mi setki ostrzeżenia mówiąc „Ignorowanie InnerClasses atrybut anonimowej klasy wewnętrznej” (co innego Odpowiedzi na stackoverflow sugerują, że nie są to poważne ostrzeżenia), a następnie pokazują przez chwilę tylko migający kursor, a po około minucie daje mi to błąd.
Nie pójdziesz .. Twoje pytanie jest ponownie .. –
Dzięki .. Każdy pomysł o pytanie? – technophyle
prawdopodobnie wykonaj następujące kroki, aby zwiększyć rozmiar sterty, http://stackoverflow.com/q/18723755/603744 i daj mi znać, jeśli to działa. –