Превышена емкость 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 для обрезки любых неиспользуемых методов / классов из вашего приложения.

Если вы используете библиотеки, это может значительно сократить размер приложения и количество объектов, которые должны быть выделены, тем самым обойдя проблему (по крайней мере, до приложения определенного размера).

Другие вопросы по тегам