LinearAlloc超出容量(5242880),最后= 1092在我的Samsung Tablet设备上安装时出错

时间:2011-12-07 10:33:57

标签: android dalvik dexopt

我在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,但是如何将wipeuserdata用于实际设备?

如何解决此问题并在三星平板电脑上安装我的apk?

2 个答案:

答案 0 :(得分:7)

这是Dalvik在异常复杂的界面层次结构中触发的限制。

http://code.google.com/p/android/issues/detail?id=22586

详细了解有关解决方法的建议。简单的答案可能是尝试使用不太复杂的不同库。

修复程序已合并到Android AOSP中。 https://android-review.googlesource.com/#/c/30900/

答案 1 :(得分:0)

一个可能的解决方案是使用Proguard修剪应用程序中任何未使用的方法/类。

如果您正在使用库,这可以显着减少应用程序的大小和需要分配的对象数量,从而避免问题(至少达到特定大小的应用程序)。