Android应用程序(含felix)崩溃,LinearLoc超出容量
我正在安卓3.2上运行ApacheFelix和osgi应用程序。到目前为止,这工作得相当不错,但我有相当大的数据块要加载到应用程序osgi捆绑包中。问题是,当我加载得到的最大数据块时 LinearAlloc超出容量 错误似乎来自于 c.cAndroid应用程序(含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.
\#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。