文件存在于资产中,但抛出 FileNotFoundException

File exist in assets but is throwing an FileNotFoundException

我正在尝试访问保存在资产文件夹中的照片,但我的代码始终无法正常工作。

我在资产中有 16 个子文件夹,其中包含 png 格式的照片,每个子文件夹的大小在 30kb ~ 60kb

之间

每个文件夹有 100 到 400 张照片

资产文件夹的完整大小为 113mb。

我的代码在我向资产添加更多照片时停止工作

 public Bitmap getImg(String ID, String pic){
    InputStream istr = null;
    try {
        //Exemple: II/1.png 
        istr =  getAssets().open(ID + "/" + pic +".png");
    } catch (IOException e) {
        e.printStackTrace();
    }
    return BitmapFactory.decodeStream(istr);
}

当我 运行 此代码时,我得到一个 FileNotFoundException,但文件存在(我知道文件名区分大小写,扩展名是小写的,图片名称是数字)。

我认为这与文件大小有关,因为我压缩了一个子文件夹中的所有照片,然后它又开始工作了,但在其他文件夹(有更多照片)上却没有,即使在压缩之后我仍然收到 FileNotFoundException。

是否有更好的方式来存储或访问照片?

我可以通过将格式从 PNG 更改为 JPG 来解决我的问题