我在我的资源文件夹中包含了几个预先制作的.png文件,但只有其中一些文件没有错误:
AssetManager assetManager = context.getAssets();
Inputstream in = assetManager.open(assetName);
其中assetName
是包含“myPic.png”之类的String
。
它似乎适用于某些文件,但对于其他文件,它会抛出java.io.FileNotFoundException: myPic.png
,即使我在Assets文件夹中看到它,还有许多其他似乎正在削减的文件。
答案 0 :(得分:5)
显然在Android Studio中关闭/重新打开项目足以让它正常工作。不知道为什么它首先没有注意到所有的资产,但现在它在重新启动之后就会发现。
答案 1 :(得分:1)
确保变量的名称与文件名相对应,它们区分大小写。这可能就是为什么某些文件没有被阅读的原因。
答案 2 :(得分:1)
如果您在Android Instrumentation测试期间遇到此问题,可以通过更改此问题来解决此问题:
ApplicationProvider.getApplicationContext().getAssets().open(YOUR_FILE)
对此:
InputStream inputStream = InstrumentationRegistry.getInstrumentation().
getContext().getAssets().open(YOUR_FILE);
应用程序提供商知道将资源请求重定向到您的工具资源,然后回退到被测试的应用程序,但是它对资产的智能不同