我的应用程序中有 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/