Я использую библиотеку LeakCanary для отслеживания утечек памяти в моем приложении. Я получил эту утечку памяти и не знаю, как отследить ее причину.
05-09 09:32:14.731 28497-31220/? D/LeakCanary﹕ In com.etiennelawlor.minesweeper:0.0.21:21.
* com.etiennelawlor.minesweeper.fragments.MinesweeperFragment has leaked:
* GC ROOT com.google.android.gms.games.internal.GamesClientImpl$PopupLocationInfoBinderCallbacks.zzahO
* references com.google.android.gms.games.internal.PopupManager$PopupManagerHCMR1.zzajo
* references com.google.android.gms.games.internal.GamesClientImpl.mContext
* references com.etiennelawlor.minesweeper.activities.MinesweeperActivity.mFragments
* references android.app.FragmentManagerImpl.mAdded
* references java.util.ArrayList.array
* references array java.lang.Object[].[0]
* leaks com.etiennelawlor.minesweeper.fragments.MinesweeperFragment instance
* Reference Key: 2f367393-6dfd-4797-8d85-7ac52c431d07
* Device: LGE google Nexus 5 hammerhead
* Android Version: 5.1 API: 22
* Durations: watch=5015ms, gc=141ms, heap dump=1978ms, analysis=23484ms
Это мое репо: https://github.com/lawloretienne/Minesweeper
Это кажется неуловимым. Я установил Interface
для связи между Fragment
и Activity
. Я установил эту mCoordinator
Interface
переменную в onAttach()
, тогда я понял, что не обнуляю ее в onDetach()
. Я исправил эту проблему, но по-прежнему получаю утечку памяти. Любые идеи?
Обновлять
Я отключил наблюдение за утечками Fragment
, но по-прежнему получаю уведомление об утечке активности со следующей трассировкой утечки:
05-09 17:07:33.074 12934-14824/? D/LeakCanary﹕ In com.etiennelawlor.minesweeper:0.0.21:21.
* com.etiennelawlor.minesweeper.activities.MinesweeperActivity has leaked:
* GC ROOT com.google.android.gms.games.internal.GamesClientImpl$PopupLocationInfoBinderCallbacks.zzahO
* references com.google.android.gms.games.internal.PopupManager$PopupManagerHCMR1.zzajo
* references com.google.android.gms.games.internal.GamesClientImpl.mContext
* leaks com.etiennelawlor.minesweeper.activities.MinesweeperActivity instance
* Reference Key: f4d06830-0e16-43a2-9750-7e2cb77ae24d
* Device: LGE google Nexus 5 hammerhead
* Android Version: 5.1 API: 22
* Durations: watch=5016ms, gc=164ms, heap dump=3430ms, analysis=39535ms
onDestroy()
. Но у активности все еще есть та же утечка памяти. - person toobsco42   schedule 11.05.2015Share heap dump
в дополнительном меню, любое приложение, в котором я пытаюсь поделиться им, терпит неудачу. Например, в GMail написаноPermission denied for attachment
. - person toobsco42   schedule 12.05.2015onDestroy()
метод. Если это не так, как предлагает Дмид ниже, вы должны поместить свои отмененные вызовы вonStop()
илиonPause()
- person TBridges42   schedule 12.05.2015