Android(3.2)でapache felixとosgiアプリを実行しています。これはこれまでのところうまく機能していますが、アプリケーションにロードするデータのかなり大きなチャンク (osgi バンドル) があります。それに関する問題は、取得するデータの最大のチャンクをロードするときに
LinearAlloc が容量を超えました
エラーが発生したようです
LinearAlloc.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();
}
afaik 3.2/4.x では 8*1024*1024 でもありますが、それでもその制限に達しています。この問題の原因と、それを修正する方法について、より良い洞察を得たいと考えています。どんな助けでも大歓迎です。