0
我試圖運行android.its給錯誤跟蹤執行的AsyncTask時,其給內存不足的錯誤了
02-14 22:49:14.812: E/AndroidRuntime(665): FATAL EXCEPTION: AsyncTask #3
02-14 22:49:14.812: E/AndroidRuntime(665): java.lang.RuntimeException: An error occured while executing doInBackground()
02-14 22:49:14.812: E/AndroidRuntime(665): at android.os.AsyncTask$3.done(AsyncTask.java:278)
02-14 22:49:14.812: E/AndroidRuntime(665): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
02-14 22:49:14.812: E/AndroidRuntime(665): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
02-14 22:49:14.812: E/AndroidRuntime(665): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
02-14 22:49:14.812: E/AndroidRuntime(665): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
02-14 22:49:14.812: E/AndroidRuntime(665): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
02-14 22:49:14.812: E/AndroidRuntime(665): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
02-14 22:49:14.812: E/AndroidRuntime(665): at java.lang.Thread.run(Thread.java:856)
02-14 22:49:14.812: E/AndroidRuntime(665): Caused by: java.lang.OutOfMemoryError
02-14 22:49:14.812: E/AndroidRuntime(665): at java.io.BufferedWriter.<init>(BufferedWriter.java:71)
02-14 22:49:14.812: E/AndroidRuntime(665): at java.io.BufferedWriter.<init>(BufferedWriter.java:54)
02-14 22:49:14.812: E/AndroidRuntime(665): at com.jakewharton.disklrucache.DiskLruCache.open(DiskLruCache.java:226)
02-14 22:49:14.812: E/AndroidRuntime(665): at com.hercules.quantum.QuantumActivity$InitThumbnailDiskCacheTask.doInBackground(QuantumActivity.java:5575)
02-14 22:49:14.812: E/AndroidRuntime(665): at com.hercules.quantum.QuantumActivity$InitThumbnailDiskCacheTask.doInBackground(QuantumActivity.java:1)
02-14 22:49:14.812: E/AndroidRuntime(665): at android.os.AsyncTask$2.call(AsyncTask.java:264)
02-14 22:49:14.812: E/AndroidRuntime(665): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
02-14 22:49:14.812: E/AndroidRuntime(665): ... 4 more
的現有項目和相關的源代碼到它顯示這個錯誤是
class InitThumbnailDiskCacheTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
synchronized (thumbnailLruCacheLock) {
// Check if media is mounted or storage is built-in, if so, try and use external cache dir
// otherwise use internal cache dir
final String cachePath =
Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()) ||
!Environment.isExternalStorageRemovable() ? getExternalCacheDir().getPath() :
getCacheDir().getPath();
Log.i("Cache Path","Cache Path"+cachePath);
try {
if (!isCancelled()) {
thumbnailLruCache = DiskLruCache.open(
new File(cachePath + File.separator + "thumbnails"),
APP_VERSION,
VALUE_COUNT,
DISK_CACHE_SIZE);
}
} catch (IOException e) {
Log.e(TAG, "Failed to initialize thumbnail cahce", e);
}
thumbnailLruCacheStarting = false; // Finished initialization
thumbnailLruCacheLock.notifyAll(); // Wake any waiting threads
}
return null;
}
}
任何人都可以請指導線如何解決它。
這是你的DiskLruCache.java文件的第226行嗎? – nKn
https://github.com/JakeWharton/DiskLruCache/blob/master/src/main/java/com/jakewharton/disklrucache/DiskLruCache.java這是圖書館 –
Log.i中的主要問題(「Cache Path」,「緩存路徑「+ cachePath); LogCat中不顯示此日誌 –