有时候会有这样的需求,在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版本就没有这个问题了。