Превышена емкость LinearAlloc (5242880), последняя =1092 Ошибка при установке на моем планшетном ПК Samsung
Постоянно получаю, это ошибки в logcat
DexOpt: not resolving ambiguous class 'Lorg/apache/http/client/utils/URLEncodedUtils;'
12-07 05:26:01.085: ERROR/dalvikvm(4620): LinearAlloc exceeded capacity (5242880), last=1092
12-07 05:26:01.085: ERROR/dalvikvm(4620): VM aborting
12-07 05:26:01.187: INFO/DEBUG(2373): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
12-07 05:26:01.187: INFO/DEBUG(2373): Build fingerprint: 'samsung/SGH-T849/SGH-T849/SGH-T849:2.2/FROYO/UVJJB:user/release-keys'
12-07 05:26:01.187: INFO/DEBUG(2373): pid: 4620, tid: 4620 >>> /system/bin/dexopt <<<
12-07 05:26:01.187: INFO/DEBUG(2373): signal 11 (SIGSEGV), fault addr deadd00d
............etc
12-07 05:26:01.347: INFO/dalvikvm(2494): threadid=3: reacting to signal 3
12-07 05:26:01.358: INFO/dalvikvm(2494): Wrote stack traces to '/data/anr/traces.txt'
12-07 05:26:01.551: INFO/dalvikvm(2578): threadid=3: reacting to signal 3
12-07 05:26:02.866: ERROR/dalvikvm(4581): Failed to write stack traces to /data/anr/traces.txt (1370 of 2089): No such file or directory
12-07 05:26:25.976: ERROR/installd(2383): dexopt failed on '/data/dalvik-cache/data@app@com.check.careerbuilder-1.apk@classes.dex' res = 11
12-07 05:26:26.050: WARN/PackageManager(2494): Package couldn't be installed in /data/app/com.check.careerbuilder-1.apk
и пока на консоли
Installation error: INSTALL_FAILED_DEXOPT
Please check logcat output for more details.
Launch canceled!
Я пытался очистить проект, перезагрузить устройство, убить adb и запустить сервер,
и я нашел WipeUserData для проверки, но как стереть данные для реального устройства?
Как решить эту проблему и установить мой APK на планшет Samsung?
2 ответа
Это ограничение в Dalvik, вызванное необычайно сложной интерфейсной иерархией.
http://code.google.com/p/android/issues/detail?id=22586
Посмотрите детали для идей по работе вокруг. Простым ответом может быть попытка использовать разные библиотеки, которые являются менее сложными.
Исправление было объединено с Android AOSP. https://android-review.googlesource.com/
Одним из возможных решений является использование Proguard для обрезки любых неиспользуемых методов / классов из вашего приложения.
Если вы используете библиотеки, это может значительно сократить размер приложения и количество объектов, которые должны быть выделены, тем самым обойдя проблему (по крайней мере, до приложения определенного размера).