gpt4 book ai didi

java - 在android中从web服务加载图像时如何处理java.io.FileNotFoundException

转载 作者:行者123 更新时间:2023-11-29 05:25:10 25 4
gpt4 key购买 nike

我的应用程序中有 java.io.FileNotFoundException 错误问题,在我的应用程序中使用 Android-Universal-Image-Loader ,为了从 Web 服务加载图像,我知道 Filenotfound exceprion 意味着 url 无效,我需要处理这个异常,任何人都可以帮助我,如何处理这个错误。

public class TestApp extends Application {
// private static final String TAG = TFEApplication.class.getSimpleName();

@Override
public void onCreate() {
super.onCreate();

ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
getApplicationContext())
.threadPriority(Thread.NORM_PRIORITY - 2)
.denyCacheImageMultipleSizesInMemory()
.discCacheFileNameGenerator(new HashCodeFileNameGenerator())
.tasksProcessingOrder(QueueProcessingType.FIFO).build();

// Initialize ImageLoader with configuration.
ImageLoader.getInstance().init(config);
}
}
public class MainActivity extends Activity {
private ImageLoader mImageLoader;
private DisplayImageOptions mDisplayImageoptions;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mDisplayImageoptions = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.ic_launcher).cacheInMemory(true)
.cacheOnDisc(true).considerExifParams(true).build();
mImageLoader = ImageLoader.getInstance();
setContentView(R.layout.activity_main);

}

@Override
protected void onStart() {

super.onStart();

try{
ImageView testView =(ImageView) findViewById(R.id.imageid);
mImageLoader.displayImage("http://examle.com",testView, mDisplayImageoptions);
}catch(Exception execException)
{
System.out.println(execException.getMessage());
}
}

}

错误:

java.io.FileNotFoundException: http://exame.com/text.jpg
at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:186)
com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStreamFromNetwork(BaseImageDownloader.java:111)
at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStream(BaseImageDownloader.java:77)
at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.downloadImage(LoadAndDisplayImageTask.java:319)
at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryCacheImageOnDisc(LoadAndDisplayImageTask.java:298)
at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryLoadBitmap(LoadAndDisplayImageTask.java:241)
at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.run(LoadAndDisplayImageTask.java:141)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:841)

最佳答案

编辑

所以在查看源代码之后,看起来这是库的一个错误。在 LoadAndDisplayImageTask.java 中,tryLoadBitmap() 的第一行是 File imageFile = getImageFileInDiscCache()。这就是抛出异常的原因。 getImageFileInDiscCache() 需要干净地处理 IOException,以便在找不到缓存时可以继续执行其余操作。不幸的是,我没有看到用 .jar 覆盖它的真正简单的方法。你可以从github导入项目,自己修改。

关于java - 在android中从web服务加载图像时如何处理java.io.FileNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22965928/

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