偶然发现的android2.2的一个bug

有时候会有这样的需求,在assets里放入一些文件,程序运行时能够动态读取。代码如下:

 

AssetManager am = context.getAssets();
String[] imgs = am.list("img");
for (int i = 0; i < imgs .length; i++)
{
    String imgName = imgs[i];
    InputStream is = am.open(String.format("img/%s", imgName));
// do something with is.
}

 

如果在android2.2下,添加到img目录下的文件超过512个,调用am.list("img")就会出错,提示引用超过512个了,这是个jni层的错误,应该是本地代码未及时释放本地引用,这个bug导致程序直接崩溃退出。不过android2.3版本就没有这个问题了。

posted @ 2012-05-14 09:48  jiaozebo  阅读(879)  评论(1编辑  收藏  举报