gpt4 book ai didi

在 Android 中打开 Assets 时出现 java.io.FileNotFoundException

转载 作者:行者123 更新时间:2023-11-29 19:16:56 24 4
gpt4 key购买 nike

Assets 文件夹中存在 50 多个 PNG。层次结构:src-->main.

        AssetManager assetManager = getApplicationContext().getAssets();
String[] files = null;
try {
files = assetManager.list("imgs");
} catch (IOException e) {
Log.e("tag", "Failed to get asset file list.", e);
}
if (files != null) for (String filename : files) {
InputStream in = null;
OutputStream out = null;
try {

File file = new File(filename);


in = assetManager.open(file.getPath());

out = new FileOutputStream(f);
copyFile(in, out);
} catch (IOException e) {
Log.e("tag", "Failed to copy asset file: " + filename, e);
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
// NOOP
}
}
if (out != null) {
try {
out.close();
} catch (IOException e) {
// NOOP
}
}
}
}

错误:

java.io.FileNotFoundException: 505-tumbleweed-ani.gif
at android.content.res.AssetManager.openAsset(Native Method)
at android.content.res.AssetManager.open(AssetManager.java:347)
at android.content.res.AssetManager.open(AssetManager.java:321)
at com.example.android.softkeyboard.ImePreferences.copyAssets(ImePreferences.java:172)
at com.example.android.softkeyboard.ImePreferences.onRequestPermissionsResult(ImePreferences.java:107)
at android.app.Activity.dispatchRequestPermissionsResult(Activity.java:7069)
at android.app.Activity.dispatchActivityResult(Activity.java:6921)
at android.app.ActivityThread.deliverResults(ActivityThread.java:4049)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4096)
at android.app.ActivityThread.-wrap20(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1516)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

最佳答案

将下行替换为

File file = new File(filename);

使用以下代码:

你需要在下一行添加文件路径

// load image
try {
// get input stream
InputStream inputstream= getAssets().open("imgs/"+filename);
// load image as Drawable
Drawable drawable = Drawable.createFromStream(inputstream, null);
// set image to ImageView
mImage.setImageDrawable(drawable );
}
catch(IOException ex) {
return;
}

关于在 Android 中打开 Assets 时出现 java.io.FileNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43185305/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com