Android应用程序(含felix)崩溃,LinearLoc超出容量

Android应用程序(含felix)崩溃,LinearLoc超出容量,android,osgi,dalvik,apache-felix,Android,Osgi,Dalvik,Apache Felix,我正在安卓3.2上运行ApacheFelix和osgi应用程序。到目前为止,这工作得相当不错,但我有相当大的数据块要加载到应用程序osgi捆绑包中。问题是,当我加载得到的最大数据块时 LinearAlloc超出容量 错误似乎来自于 c.c \#define DEFAULT_MAX_LENGTH (4*1024*1024) if (nextOffset > pHdr->mapLength) { /* * We don't have to abort here.

我正在安卓3.2上运行ApacheFelix和osgi应用程序。到目前为止,这工作得相当不错,但我有相当大的数据块要加载到应用程序osgi捆绑包中。问题是,当我加载得到的最大数据块时

LinearAlloc超出容量

错误似乎来自于

c.c

\#define DEFAULT_MAX_LENGTH  (4*1024*1024)

 if (nextOffset > pHdr->mapLength) {
    /*
     * We don't have to abort here.  We could fall back on the system
     * malloc(), and have our "free" call figure out what to do.  Only
     * works if the users of these functions actually free everything
     * they allocate.
     */
    LOGE("LinearAlloc exceeded capacity, last=%d\n", (int) size);
    dvmAbort();
}

在3.2/4.x中,它甚至是8*1024*1024,但我仍然达到了这个极限。我希望能够更好地了解导致此问题的原因,以及我可能如何解决此问题。任何帮助都将不胜感激。

这是Dalvik在异常复杂的接口层次结构上触发的限制

请参阅详细信息,以了解如何解决此问题。简单的答案可能是尝试使用不太复杂的不同库

一个补丁已经被合并到Android AOSP中。

请在此处报告一个bug:如果您可以包含一个小测试用例进行复制,这将使Androids更容易修复您的bug。