从资产加载时找不到文件?

时间:2016-05-17 15:15:45

标签: java android file android-studio assets

我在我的资源文件夹中包含了几个预先制作的.png文件,但只有其中一些文件没有错误:

AssetManager assetManager = context.getAssets();
Inputstream in = assetManager.open(assetName);

其中assetName是包含“myPic.png”之类的String

它似乎适用于某些文件,但对于其他文件,它会抛出java.io.FileNotFoundException: myPic.png,即使我在Assets文件夹中看到它,还有许多其他似乎正在削减的文件。

3 个答案:

答案 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);

应用程序提供商知道将资源请求重定向到您的工具资源,然后回退到被测试的应用程序,但是它对资产的智能不同