Утечка ресурсов при использовании ExoPlayer с SimpleCacheAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Утечка ресурсов при использовании ExoPlayer с SimpleCache

Сообщение Anonymous »

С тех пор, как я начал использовать SimpleCache с ExoPlayer, я постоянно получаю LeakedCloseableViolation, как только начинаю воспроизводить новый файл, даже несмотря на то, что вызываю метод освобождения кэша.
Вот как я это делаю. инициализирую плеер

Код: Выделить всё

...
this.simpleCache = new SimpleCache(new File(context.getCacheDir(), "streamCaching"), new LeastRecentlyUsedCacheEvictor(25 * 1024 * 1024), new StandaloneDatabaseProvider(context));
factory = new CacheDataSource.Factory().setCache(this.simpleCache).setUpstreamDataSourceFactory(httpDataSourceFactory);
...
Тогда вот мой код выпуска, который вызывается, как только плеер останавливается

Код: Выделить всё

  this.player.release();
if (this.simpleCache != null) {
this.simpleCache.release();
this.simpleCache = null;
}
Есть идеи, почему я продолжаю получать эти сообщения.
Нарушение политики StrictMode: android.os.strictmode.LeakedClosableViolation: ресурс был получен при трассировке прикрепленного стека, но никогда не выпускался. Информацию о предотвращении утечек ресурсов см. в java.io.Closeable.
на android.os.StrictMode$AndroidCloseGuardReporter.report(StrictMode.java:1987)
на dalvik.system.CloseGuard.warnIfOpen(CloseGuard.java) :345)
at android.database.sqlite.SQLiteDatabase.dispose(SQLiteDatabase.java:427)
at android.database.sqlite.SQLiteDatabase.finalize(SQLiteDatabase.java:408)
at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:291)
в java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:278)
в java.lang.Daemons$Daemon. run(Daemons.java:139)
at java.lang.Thread.run(Thread.java:920)
Вызвано: java.lang.Throwable: метод явного завершения close не вызывается
в dalvik.system.CloseGuard.openWithCallSite(CloseGuard.java:295)
в dalvik.system.CloseGuard.open(CloseGuard.java:263)
в android.database.sqlite.SQLiteDatabase.openInner (SQLiteDatabase.java:1415)
в android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:1355)
в android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:996)в android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:470)
в android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:437)
в com.google. android.exoplayer2.upstream.cache.CachedContentIndex$DatabaseStorage.exists(CachedContentIndex.java:799)
на com.google.android.exoplayer2.upstream.cache.CachedContentIndex.initialize(CachedContentIndex.java:201)
в com.google.android.exoplayer2.upstream.cache.SimpleCache.initialize(SimpleCache.java:582)
в com.google.android.exoplayer2.upstream.cache.SimpleCache.access$000(SimpleCache.java: 49)
на com.google.android.exoplayer2.upstream.cache.SimpleCache$1.run(SimpleCache.java:268)

Подробнее здесь: https://stackoverflow.com/questions/783 ... implecache
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»