2016-12-13 21 views
4

我对LeakCanary的行为有些困惑,我希望SO可以帮助我。我已将LeakCanary添加到我的应用程序中,而且我看到一个弹出窗口声称泄漏。LeakCanary似乎检测到泄漏,即使该课程被排除

这肯定看起来像InputMethodManager这里提到:https://github.com/square/leakcanary/issues/322

它看起来像LeakCanary将其标记为排除,但仍显示弹出。我在这里有什么不了解的吗? (我可以包括我排除的代码是否有帮助,但是......)

这里的泄漏活动的截图:

leak canary screenshot

这里的修整logcat的输出:

12-13 15:08:26.868 D/LeakCanary(1642): In com.blueapron.blueapron.debug:0.0.0-123-g5c653b9-debug:135000. 
12-13 15:08:26.868 D/LeakCanary(1642): * EXCLUDED LEAK. 
12-13 15:08:26.868 D/LeakCanary(1642): * com.blueapron.mobile.ui.MainActivity has leaked: 
12-13 15:08:26.868 D/LeakCanary(1642): * GC ROOT android.view.inputmethod.InputMethodManager$ControlledInputConnectionWrapper.mParentInputMethodManager , matching exclusion any subclass of android.view.inputmethod.InputMethodManager$ControlledInputConnectionWrapper 
12-13 15:08:26.869 D/LeakCanary(1642): * references android.view.inputmethod.InputMethodManager.mNextServedView , matching exclusion field android.view.inputmethod.InputMethodManager#mNextServedView 
12-13 15:08:26.869 D/LeakCanary(1642): * references android.support.v7.widget.RecyclerView.mContext 
12-13 15:08:26.869 D/LeakCanary(1642): * leaks com.blueapron.mobile.ui.MainActivity instance 
12-13 15:08:26.869 D/LeakCanary(1642): * Retaining: 6.0 KB. 
12-13 15:08:26.869 D/LeakCanary(1642): * Reference Key: ecc9f4d2-78a2-4542-ae1e-abb4d4e358e4 
12-13 15:08:26.869 D/LeakCanary(1642): * Device: motorola google Nexus 6 shamu 
12-13 15:08:26.869 D/LeakCanary(1642): * Android Version: 6.0.1 API: 23 LeakCanary: 1.5 00f37f5 
12-13 15:08:26.869 D/LeakCanary(1642): * Durations: watch=5157ms, gc=176ms, heap dump=8016ms, analysis=63575ms 
12-13 15:08:26.869 D/LeakCanary(1642): * Details: 
12-13 15:08:26.869 D/LeakCanary(1642): * Instance of android.view.inputmethod.InputMethodManager$ControlledInputConnectionWrapper 
12-13 15:08:26.869 D/LeakCanary(1642): | mActive = true 
12-13 15:08:26.869 D/LeakCanary(1642): | mParentInputMethodManager = [email protected] (0x12da7af0) 
12-13 15:08:26.869 D/LeakCanary(1642): | mH = [email protected]29568 (0x130587e0) 
12-13 15:08:26.869 D/LeakCanary(1642): | mInputConnection = [email protected] (0x13058800) 
12-13 15:08:26.869 D/LeakCanary(1642): | mMainLooper = [email protected] (0x12c02040) 
12-13 15:08:26.869 D/LeakCanary(1642): | mDescriptor = [email protected] (0x6fa90880) 
12-13 15:08:26.869 D/LeakCanary(1642): | mObject = -1361251728 
12-13 15:08:26.869 D/LeakCanary(1642): | mOwner = android.view.[email protected]314574736 (0x12c00790) 
12-13 15:08:26.869 D/LeakCanary(1642): | shadow$_klass_ = android.view.inputmethod.InputMethodManager$ControlledInputConnectionWrapper 
12-13 15:08:26.869 D/LeakCanary(1642): | shadow$_monitor_ = 0 
12-13 15:08:26.869 D/LeakCanary(1642): * Instance of android.view.inputmethod.InputMethodManager 
12-13 15:08:26.870 D/LeakCanary(1642): | static RESULT_UNCHANGED_HIDDEN = 1 
12-13 15:08:26.870 D/LeakCanary(1642): | static MSG_SET_ACTIVE = 4 
12-13 15:08:26.870 D/LeakCanary(1642): | static RESULT_HIDDEN = 3 
12-13 15:08:26.870 D/LeakCanary(1642): | static REQUEST_UPDATE_CURSOR_ANCHOR_INFO_NONE = 0 
12-13 15:08:26.870 D/LeakCanary(1642): | static sInstance = [email protected] (0x12da7af0) 
12-13 15:08:26.870 D/LeakCanary(1642): | static SHOW_FORCED = 2 
12-13 15:08:26.870 D/LeakCanary(1642): | static DISPATCH_NOT_HANDLED = 0 
12-13 15:08:26.870 D/LeakCanary(1642): | static HIDE_NOT_ALWAYS = 2 
12-13 15:08:26.870 D/LeakCanary(1642): | static NOT_AN_ACTION_NOTIFICATION_SEQUENCE_NUMBER = -1 
12-13 15:08:26.870 D/LeakCanary(1642): | static MSG_UNBIND = 3 
12-13 15:08:26.870 D/LeakCanary(1642): | static CONTROL_WINDOW_FIRST = 4 
12-13 15:08:26.870 D/LeakCanary(1642): | static CONTROL_START_INITIAL = 256 
12-13 15:08:26.870 D/LeakCanary(1642): | static RESULT_UNCHANGED_SHOWN = 0 
12-13 15:08:26.870 D/LeakCanary(1642): | static SHOW_IM_PICKER_MODE_AUTO = 0 
12-13 15:08:26.870 D/LeakCanary(1642): | static SHOW_IMPLICIT = 1 
12-13 15:08:26.870 D/LeakCanary(1642): | static CONTROL_WINDOW_VIEW_HAS_FOCUS = 1 
12-13 15:08:26.870 D/LeakCanary(1642): | static MSG_DUMP = 1 
12-13 15:08:26.870 D/LeakCanary(1642): | static TAG = [email protected] (0x6fa809b0) 
12-13 15:08:26.870 D/LeakCanary(1642): | static SHOW_IM_PICKER_MODE_EXCLUDE_AUXILIARY_SUBTYPES = 2 
12-13 15:08:26.870 D/LeakCanary(1642): | static MSG_SEND_INPUT_EVENT = 5 
12-13 15:08:26.870 D/LeakCanary(1642): | static INPUT_METHOD_NOT_RESPONDING_TIMEOUT = 2500 
12-13 15:08:26.870 D/LeakCanary(1642): | static DEBUG = false 
12-13 15:08:26.870 D/LeakCanary(1642): | static PENDING_EVENT_COUNTER = [email protected] (0x6fa8dcb8) 
12-13 15:08:26.870 D/LeakCanary(1642): | static RESULT_SHOWN = 2 
12-13 15:08:26.871 D/LeakCanary(1642): | static DISPATCH_IN_PROGRESS = -1 
12-13 15:08:26.871 D/LeakCanary(1642): | static MSG_FLUSH_INPUT_EVENT = 7 
12-13 15:08:26.871 D/LeakCanary(1642): | static $staticOverhead = byte[264]@1876294145 (0x6fd5fa01) 
12-13 15:08:26.871 D/LeakCanary(1642): | static CONTROL_WINDOW_IS_TEXT_EDITOR = 2 
12-13 15:08:26.871 D/LeakCanary(1642): | static MSG_TIMEOUT_INPUT_EVENT = 6 
12-13 15:08:26.871 D/LeakCanary(1642): | static MSG_BIND = 2 
12-13 15:08:26.871 D/LeakCanary(1642): | static DISPATCH_HANDLED = 1 
12-13 15:08:26.871 D/LeakCanary(1642): | static SHOW_IM_PICKER_MODE_INCLUDE_AUXILIARY_SUBTYPES = 1 
12-13 15:08:26.871 D/LeakCanary(1642): | static MSG_SET_USER_ACTION_NOTIFICATION_SEQUENCE_NUMBER = 9 
12-13 15:08:26.871 D/LeakCanary(1642): | static HIDE_IMPLICIT_ONLY = 1 
12-13 15:08:26.871 D/LeakCanary(1642): | mActive = false 
12-13 15:08:26.871 D/LeakCanary(1642): | mBindSequence = -1 
12-13 15:08:26.871 D/LeakCanary(1642): | mClient = [email protected] (0x12c02800) 
12-13 15:08:26.871 D/LeakCanary(1642): | mCompletions = null 
12-13 15:08:26.871 D/LeakCanary(1642): | mCurChannel = null 
12-13 15:08:26.871 D/LeakCanary(1642): | mCurId = null 
12-13 15:08:26.871 D/LeakCanary(1642): | mCurMethod = null 
12-13 15:08:26.871 D/LeakCanary(1642): | mCurRootView = null 
12-13 15:08:26.871 D/LeakCanary(1642): | mCurSender = null 
12-13 15:08:26.871 D/LeakCanary(1642): | mCurrentTextBoxAttribute = null 
12-13 15:08:26.871 D/LeakCanary(1642): | mCursorAnchorInfo = null 
12-13 15:08:26.871 D/LeakCanary(1642): | mCursorCandEnd = 0 
12-13 15:08:26.871 D/LeakCanary(1642): | mCursorCandStart = 0 
12-13 15:08:26.871 D/LeakCanary(1642): | mCursorRect = [email protected] (0x12e3ab20) 
12-13 15:08:26.872 D/LeakCanary(1642): | mCursorSelEnd = 0 
12-13 15:08:26.872 D/LeakCanary(1642): | mCursorSelStart = 0 
12-13 15:08:26.872 D/LeakCanary(1642): | mDummyInputConnection = [email protected] (0x12e3ab40) 
12-13 15:08:26.872 D/LeakCanary(1642): | mFullscreenMode = false 
12-13 15:08:26.872 D/LeakCanary(1642): | mH = [email protected] (0x12e3ab60) 
12-13 15:08:26.872 D/LeakCanary(1642): | mHasBeenInactive = true 
12-13 15:08:26.872 D/LeakCanary(1642): | mIInputContext = android.view.[email protected]314574736 (0x12c00790) 
12-13 15:08:26.872 D/LeakCanary(1642): | mLastSentUserActionNotificationSequenceNumber = -1 
12-13 15:08:26.872 D/LeakCanary(1642): | mMainLooper = [email protected] (0x12c02040) 
12-13 15:08:26.872 D/LeakCanary(1642): | mNextServedView = [email protected] (0x12e11c00) 
12-13 15:08:26.872 D/LeakCanary(1642): | mNextUserActionNotificationSequenceNumber = 2 
12-13 15:08:26.872 D/LeakCanary(1642): | mPendingEventPool = [email protected] (0x12c01f80) 
12-13 15:08:26.872 D/LeakCanary(1642): | mPendingEvents = [email protected] (0x12e3ab80) 
12-13 15:08:26.872 D/LeakCanary(1642): | mRequestUpdateCursorAnchorInfoMonitorMode = 0 
12-13 15:08:26.872 D/LeakCanary(1642): | mServedConnecting = true 
12-13 15:08:26.872 D/LeakCanary(1642): | mServedInputConnection = null 
12-13 15:08:26.872 D/LeakCanary(1642): | mServedInputConnectionWrapper = null 
12-13 15:08:26.872 D/LeakCanary(1642): | mServedView = [email protected] (0x12e11c00) 
12-13 15:08:26.872 D/LeakCanary(1642): | mService = [email protected]80 (0x12c01f90) 
12-13 15:08:26.872 D/LeakCanary(1642): | mTmpCursorRect = [email protected] (0x12e3aba0) 
12-13 15:08:26.872 D/LeakCanary(1642): | shadow$_klass_ = android.view.inputmethod.InputMethodManager 
12-13 15:08:26.872 D/LeakCanary(1642): | shadow$_monitor_ = 0 
12-13 15:08:26.872 D/LeakCanary(1642): * Instance of android.support.v7.widget.RecyclerView 
12-13 15:08:26.873 D/LeakCanary(1642): | static TRACE_CREATE_VIEW_TAG = [email protected] (0x12c95550) 
12-13 15:08:26.873 D/LeakCanary(1642): | static TRACE_HANDLE_ADAPTER_UPDATES_TAG = [email protected] (0x12c80040) 
12-13 15:08:26.873 D/LeakCanary(1642): | static HORIZONTAL = 0 
12-13 15:08:26.873 D/LeakCanary(1642): | static SCROLL_STATE_IDLE = 0 
12-13 15:08:26.873 D/LeakCanary(1642): | static MIN_PREFETCH_TIME_NANOS = 4000000 
12-13 15:08:26.873 D/LeakCanary(1642): | static SCROLL_STATE_DRAGGING = 1 
12-13 15:08:26.873 D/LeakCanary(1642): | static ALLOW_PREFETCHING = true 
12-13 15:08:26.873 D/LeakCanary(1642): | static TRACE_BIND_VIEW_TAG = [email protected] (0x12c64430) 
12-13 15:08:26.873 D/LeakCanary(1642): | static INVALID_TYPE = -1 
12-13 15:08:26.873 D/LeakCanary(1642): | static TRACE_PREFETCH_TAG = [email protected] (0x12c82fd0) 
12-13 15:08:26.873 D/LeakCanary(1642): | static TRACE_SCROLL_TAG = [email protected] (0x12c7a160) 
12-13 15:08:26.873 D/LeakCanary(1642): | static SCROLL_STATE_SETTLING = 2 
12-13 15:08:26.873 D/LeakCanary(1642): | static NESTED_SCROLLING_ATTRS = int[1]@318192048 (0x12f739b0) 
12-13 15:08:26.873 D/LeakCanary(1642): | static sQuinticInterpolator = [email protected] (0x12f0da10) 
12-13 15:08:26.873 D/LeakCanary(1642): | static POST_UPDATES_ON_ANIMATION = true 
12-13 15:08:26.873 D/LeakCanary(1642): | static TRACE_ON_LAYOUT_TAG = [email protected] (0x12c312b0) 
12-13 15:08:26.873 D/LeakCanary(1642): | static INVALID_POINTER = -1 
12-13 15:08:26.873 D/LeakCanary(1642): | static FORCE_INVALIDATE_DISPLAY_LIST = false 
12-13 15:08:26.873 D/LeakCanary(1642): | static ALLOW_SIZE_IN_UNSPECIFIED_SPEC = true 
12-13 15:08:26.873 D/LeakCanary(1642): | static TAG = [email protected] (0x12c5de50) 
12-13 15:08:26.873 D/LeakCanary(1642): | static DEBUG = false 
12-13 15:08:26.873 D/LeakCanary(1642): | static VERTICAL = 1 
12-13 15:08:26.873 D/LeakCanary(1642): | static CLIP_TO_PADDING_ATTR = int[1]@318192032 (0x12f739a0) 
12-13 15:08:26.874 D/LeakCanary(1642): | static TRACE_ON_DATA_SET_CHANGE_LAYOUT_TAG = [email protected] (0x12c78400) 
12-13 15:08:26.874 D/LeakCanary(1642): | static LAYOUT_MANAGER_CONSTRUCTOR_SIGNATURE = java.lang.Class[4]@318980224 (0x13034080) 
12-13 15:08:26.874 D/LeakCanary(1642): | static $staticOverhead = byte[256]@316502017 (0x12dd7001) 
12-13 15:08:26.874 D/LeakCanary(1642): | static TOUCH_SLOP_DEFAULT = 0 
12-13 15:08:26.874 D/LeakCanary(1642): | static NO_POSITION = -1 
12-13 15:08:26.874 D/LeakCanary(1642): | static sFrameIntervalNanos = 16666667 
12-13 15:08:26.874 D/LeakCanary(1642): | static MAX_SCROLL_DURATION = 2000 
12-13 15:08:26.874 D/LeakCanary(1642): | static TOUCH_SLOP_PAGING = 1 
12-13 15:08:26.874 D/LeakCanary(1642): | static DISPATCH_TEMP_DETACH = false 
12-13 15:08:26.874 D/LeakCanary(1642): | static NO_ID = -1 
12-13 15:08:26.874 D/LeakCanary(1642): | mAccessibilityDelegate = [email protected]10560 (0x12e3abe0) 
12-13 15:08:26.874 D/LeakCanary(1642): | mAccessibilityManager = [email protected] (0x12e0f0d0) 
12-13 15:08:26.874 D/LeakCanary(1642): | mActiveOnItemTouchListener = null 
12-13 15:08:26.874 D/LeakCanary(1642): | mAdapter = [email protected] (0x12e3ac00) 
12-13 15:08:26.874 D/LeakCanary(1642): | mAdapterHelper = [email protected] (0x12e3bc40) 
12-13 15:08:26.874 D/LeakCanary(1642): | mAdapterUpdateDuringMeasure = false 
12-13 15:08:26.874 D/LeakCanary(1642): | mBottomGlow = null 
12-13 15:08:26.874 D/LeakCanary(1642): | mChildDrawingOrderCallback = null 
12-13 15:08:26.874 D/LeakCanary(1642): | mChildHelper = [email protected] (0x12e3ac20) 
12-13 15:08:26.874 D/LeakCanary(1642): | mClipToPadding = true 
12-13 15:08:26.874 D/LeakCanary(1642): | mDataSetHasChangedAfterLayout = false 
12-13 15:08:26.874 D/LeakCanary(1642): | mDispatchScrollCounter = 0 
12-13 15:08:26.875 D/LeakCanary(1642): | mEatRequestLayout = 0 
12-13 15:08:26.875 D/LeakCanary(1642): | mEatenAccessibilityChangeFlags = 0 
12-13 15:08:26.875 D/LeakCanary(1642): | mFirstLayoutComplete = true 
12-13 15:08:26.875 D/LeakCanary(1642): | mHasFixedSize = false 
12-13 15:08:26.875 D/LeakCanary(1642): | mIgnoreMotionEventTillDown = false 
12-13 15:08:26.875 D/LeakCanary(1642): | mInitialTouchX = 346 
12-13 15:08:26.875 D/LeakCanary(1642): | mInitialTouchY = 1293 
12-13 15:08:26.875 D/LeakCanary(1642): | mIsAttached = false 
12-13 15:08:26.875 D/LeakCanary(1642): | mItemAnimator = [email protected] (0x12c98f40) 
12-13 15:08:26.875 D/LeakCanary(1642): | mItemAnimatorListener = and[email protected]314580896 (0x12c01fa0) 
12-13 15:08:26.875 D/LeakCanary(1642): | mItemAnimatorRunner = [email protected] (0x12c01fb0) 
12-13 15:08:26.875 D/LeakCanary(1642): | mItemDecorations = [email protected] (0x12e3ac40) 
12-13 15:08:26.875 D/LeakCanary(1642): | mItemsAddedOrRemoved = false 
12-13 15:08:26.875 D/LeakCanary(1642): | mItemsChanged = false 
12-13 15:08:26.875 D/LeakCanary(1642): | mLastTouchX = 346 
12-13 15:08:26.875 D/LeakCanary(1642): | mLastTouchY = 1293 
12-13 15:08:26.875 D/LeakCanary(1642): | mLayout = [email protected] (0x12e3e9c0) 
12-13 15:08:26.875 D/LeakCanary(1642): | mLayoutFrozen = false 
12-13 15:08:26.875 D/LeakCanary(1642): | mLayoutOrScrollCounter = 0 
12-13 15:08:26.875 D/LeakCanary(1642): | mLayoutRequestEaten = false 
12-13 15:08:26.875 D/LeakCanary(1642): | mLeftGlow = null 
12-13 15:08:26.875 D/LeakCanary(1642): | mMaxFlingVelocity = 28000 
12-13 15:08:26.875 D/LeakCanary(1642): | mMinFlingVelocity = 175 
12-13 15:08:26.876 D/LeakCanary(1642): | mMinMaxLayoutPositions = int[2]@316910688 (0x12e3ac60) 
12-13 15:08:26.876 D/LeakCanary(1642): | mNestedOffsets = int[2]@316910720 (0x12e3ac80) 
12-13 15:08:26.876 D/LeakCanary(1642): | mObserver = [email protected]314580928 (0x12c01fc0) 
12-13 15:08:26.876 D/LeakCanary(1642): | mOnChildAttachStateListeners = null 
12-13 15:08:26.876 D/LeakCanary(1642): | mOnFlingListener = null 
12-13 15:08:26.876 D/LeakCanary(1642): | mOnItemTouchListeners = [email protected] (0x12e3aca0) 
12-13 15:08:26.876 D/LeakCanary(1642): | mPendingAccessibilityImportanceChange = [email protected] (0x12e3acc0) 
12-13 15:08:26.876 D/LeakCanary(1642): | mPendingSavedState = null 
12-13 15:08:26.876 D/LeakCanary(1642): | mPostedAnimatorRunner = false 
12-13 15:08:26.876 D/LeakCanary(1642): | mPreserveFocusAfterLayout = true 
12-13 15:08:26.876 D/LeakCanary(1642): | mRecycler = [email protected] (0x12e3bc70) 
12-13 15:08:26.876 D/LeakCanary(1642): | mRecyclerListener = null 
12-13 15:08:26.876 D/LeakCanary(1642): | mRightGlow = null 
12-13 15:08:26.876 D/LeakCanary(1642): | mScrollConsumed = int[2]@316910816 (0x12e3ace0) 
12-13 15:08:26.876 D/LeakCanary(1642): | mScrollFactor = 1.4E-45 
12-13 15:08:26.876 D/LeakCanary(1642): | mScrollListener = null 
12-13 15:08:26.876 D/LeakCanary(1642): | mScrollListeners = null 
12-13 15:08:26.876 D/LeakCanary(1642): | mScrollOffset = int[2]@316910848 (0x12e3ad00) 
12-13 15:08:26.876 D/LeakCanary(1642): | mScrollPointerId = 0 
12-13 15:08:26.876 D/LeakCanary(1642): | mScrollState = 0 
12-13 15:08:26.876 D/LeakCanary(1642): | mScrollingChildHelper = android.support.v[email protected] (0x12e3ad20) 
12-13 15:08:26.876 D/LeakCanary(1642): | mState = [email protected] (0x12e3c900) 
12-13 15:08:26.876 D/LeakCanary(1642): | mTempRect = [email protected] (0x12e3ad40) 
12-13 15:08:26.876 D/LeakCanary(1642): | mTempRect2 = [email protected] (0x12e3ad60) 
12-13 15:08:26.877 D/LeakCanary(1642): | mTempRectF = [email protected] (0x12e3ad80) 
12-13 15:08:26.877 D/LeakCanary(1642): | mTopGlow = null 
12-13 15:08:26.877 D/LeakCanary(1642): | mTouchSlop = 28 
12-13 15:08:26.877 D/LeakCanary(1642): | mUpdateChildViewsRunnable = [email protected] (0x12c01fd0) 
12-13 15:08:26.877 D/LeakCanary(1642): | mVelocityTracker = [email protected] (0x12e3ada0) 
12-13 15:08:26.877 D/LeakCanary(1642): | mViewFlinger = [email protected] (0x12e3adc0) 
12-13 15:08:26.877 D/LeakCanary(1642): | mViewInfoProcessCallback = [email protected] (0x12c01fe0) 
12-13 15:08:26.877 D/LeakCanary(1642): | mViewInfoStore = [email protected] (0x12c01ff0) 
12-13 15:08:26.877 D/LeakCanary(1642): | mViewPrefetcher = [email protected] (0x12e3ade0) 
12-13 15:08:26.877 D/LeakCanary(1642): | mAnimationListener = null 
12-13 15:08:26.877 D/LeakCanary(1642): | mCachePaint = null 
12-13 15:08:26.877 D/LeakCanary(1642): | mChildAcceptsDrag = false 
12-13 15:08:26.877 D/LeakCanary(1642): | mChildCountWithTransientState = 0 
12-13 15:08:26.877 D/LeakCanary(1642): | mChildTransformation = null 
12-13 15:08:26.877 D/LeakCanary(1642): | mChildren = android.view.View[12]@316918080 (0x12e3c940) 
12-13 15:08:26.878 D/LeakCanary(1642): | mChildrenCount = 2 
12-13 15:08:26.878 D/LeakCanary(1642): | mCurrentDrag = null 
12-13 15:08:26.878 D/LeakCanary(1642): | mCurrentDragView = null 
12-13 15:08:26.878 D/LeakCanary(1642): | mDisappearingChildren = null 
12-13 15:08:26.878 D/LeakCanary(1642): | mDragNotifiedChildren = null 
12-13 15:08:26.878 D/LeakCanary(1642): | mFirstHoverTarget = null 
12-13 15:08:26.878 D/LeakCanary(1642): | mFirstTouchTarget = null 
12-13 15:08:26.878 D/LeakCanary(1642): | mFocused = null 
12-13 15:08:26.878 D/LeakCanary(1642): | mGroupFlags = 2375763 
12-13 15:08:26.878 D/LeakCanary(1642): | mHoveredSelf = false 
12-13 15:08:26.878 D/LeakCanary(1642): | mInvalidateRegion = null 
12-13 15:08:26.878 D/LeakCanary(1642): | mInvalidationTransformation = null 
12-13 15:08:26.878 D/LeakCanary(1642): | mLastTouchDownIndex = -1 
12-13 15:08:26.878 D/LeakCanary(1642): | mLastTouchDownTime = 0 
12-13 15:08:26.878 D/LeakCanary(1642): | mLastTouchDownX = 346.0 
12-13 15:08:26.878 D/LeakCanary(1642): | mLastTouchDownY = 1293.0 
12-13 15:08:26.878 D/LeakCanary(1642): | mLayoutAnimationController = null 
12-13 15:08:26.878 D/LeakCanary(1642): | mLayoutCalledWhileSuppressed = false 
12-13 15:08:26.879 D/LeakCanary(1642): | mLayoutMode = -1 
12-13 15:08:26.879 D/LeakCanary(1642): | mLayoutTransitionListener = [email protected] (0x12e67070) 
12-13 15:08:26.879 D/LeakCanary(1642): | mLocalPoint = null 
12-13 15:08:26.879 D/LeakCanary(1642): | mNestedScrollAxes = 0 
12-13 15:08:26.879 D/LeakCanary(1642): | mOnHierarchyChangeListener = null 
12-13 15:08:26.879 D/LeakCanary(1642): | mPersistentDrawingCache = 2 
12-13 15:08:26.879 D/LeakCanary(1642): | mPreSortedChildren = null 
12-13 15:08:26.879 D/LeakCanary(1642): | mSuppressLayout = false 
12-13 15:08:26.879 D/LeakCanary(1642): | mTempPoint = float[2]@316911104 (0x12e3ae00) 
12-13 15:08:26.879 D/LeakCanary(1642): | mTransientIndices = null 
12-13 15:08:26.879 D/LeakCanary(1642): | mTransientViews = null 
12-13 15:08:26.879 D/LeakCanary(1642): | mTransition = null 
12-13 15:08:26.879 D/LeakCanary(1642): | mTransitioningViews = null 
12-13 15:08:26.879 D/LeakCanary(1642): | mVisibilityChangingChildren = null 
12-13 15:08:26.879 D/LeakCanary(1642): | mAccessibilityCursorPosition = -1 
12-13 15:08:26.879 D/LeakCanary(1642): | mAccessibilityDelegate = [email protected]17091968 (0x12e67080) 
12-13 15:08:26.879 D/LeakCanary(1642): | mAccessibilityTraversalAfterId = -1 
12-13 15:08:26.879 D/LeakCanary(1642): | mAccessibilityTraversalBeforeId = -1 
12-13 15:08:26.879 D/LeakCanary(1642): | mAccessibilityViewId = -1 
12-13 15:08:26.879 D/LeakCanary(1642): | mAnimator = null 
12-13 15:08:26.879 D/LeakCanary(1642): | mAttachInfo = null 
12-13 15:08:26.880 D/LeakCanary(1642): | mAttributes = null 
12-13 15:08:26.880 D/LeakCanary(1642): | mBackground = null 
12-13 15:08:26.880 D/LeakCanary(1642): | mBackgroundRenderNode = null 
12-13 15:08:26.880 D/LeakCanary(1642): | mBackgroundResource = 0 
12-13 15:08:26.880 D/LeakCanary(1642): | mBackgroundSizeChanged = true 
12-13 15:08:26.880 D/LeakCanary(1642): | mBackgroundTint = null 
12-13 15:08:26.880 D/LeakCanary(1642): | mBottom = 2112 
12-13 15:08:26.880 D/LeakCanary(1642): | mCachingFailed = false 
12-13 15:08:26.880 D/LeakCanary(1642): | mClipBounds = null 
12-13 15:08:26.880 D/LeakCanary(1642): | mContentDescription = null 
12-13 15:08:26.880 D/LeakCanary(1642): | mContext = [email protected] (0x12c336e0) 
12-13 15:08:26.880 D/LeakCanary(1642): | mCurrentAnimation = null 
12-13 15:08:26.880 D/LeakCanary(1642): | mDrawableState = int[2]@1874654592 (0x6fbcf580) 
12-13 15:08:26.880 D/LeakCanary(1642): | mDrawingCache = null 
12-13 15:08:26.880 D/LeakCanary(1642): | mDrawingCacheBackgroundColor = 0 
12-13 15:08:26.880 D/LeakCanary(1642): | mFloatingTreeObserver = null 
12-13 15:08:26.880 D/LeakCanary(1642): | mForegroundInfo = null 
12-13 15:08:26.880 D/LeakCanary(1642): | mGhostView = null 
12-13 15:08:26.880 D/LeakCanary(1642): | mHasPerformedLongPress = false 
12-13 15:08:26.880 D/LeakCanary(1642): | mID = 2131624065 
12-13 15:08:26.880 D/LeakCanary(1642): | mIgnoreNextUpEvent = false 
12-13 15:08:26.880 D/LeakCanary(1642): | mInContextButtonPress = false 
12-13 15:08:26.881 D/LeakCanary(1642): | mInputEventConsistencyVerifier = null 
12-13 15:08:26.881 D/LeakCanary(1642): | mKeyedTags = [email protected] (0x12e3ae20) 
12-13 15:08:26.881 D/LeakCanary(1642): | mLabelForId = -1 
12-13 15:08:26.881 D/LeakCanary(1642): | mLastIsOpaque = false 
12-13 15:08:26.881 D/LeakCanary(1642): | mLayerPaint = null 
12-13 15:08:26.881 D/LeakCanary(1642): | mLayerType = 0 
12-13 15:08:26.881 D/LeakCanary(1642): | mLayoutInsets = null 
12-13 15:08:26.881 D/LeakCanary(1642): | mLayoutParams = [email protected] (0x12e3bca0) 
12-13 15:08:26.881 D/LeakCanary(1642): | mLeft = 0 
12-13 15:08:26.881 D/LeakCanary(1642): | mLeftPaddingDefined = false 
12-13 15:08:26.881 D/LeakCanary(1642): | mListenerInfo = null 
12-13 15:08:26.881 D/LeakCanary(1642): | mMatchIdPredicate = null 
12-13 15:08:26.881 D/LeakCanary(1642): | mMatchLabelForPredicate = null 
12-13 15:08:26.881 D/LeakCanary(1642): | mMeasureCache = [email protected] (0x12e3ae40) 
12-13 15:08:26.881 D/LeakCanary(1642): | mMeasuredHeight = 2112 
12-13 15:08:26.881 D/LeakCanary(1642): | mMeasuredWidth = 1440 
12-13 15:08:26.881 D/LeakCanary(1642): | mMinHeight = 0 
12-13 15:08:26.881 D/LeakCanary(1642): | mMinWidth = 0 
12-13 15:08:26.881 D/LeakCanary(1642): | mNestedScrollingParent = null 
12-13 15:08:26.881 D/LeakCanary(1642): | mNextFocusDownId = -1 
12-13 15:08:26.881 D/LeakCanary(1642): | mNextFocusForwardId = -1 
12-13 15:08:26.882 D/LeakCanary(1642): | mNextFocusLeftId = -1 
12-13 15:08:26.882 D/LeakCanary(1642): | mNextFocusRightId = -1 
12-13 15:08:26.882 D/LeakCanary(1642): | mNextFocusUpId = -1 
12-13 15:08:26.882 D/LeakCanary(1642): | mOldHeightMeasureSpec = 1073743936 
12-13 15:08:26.882 D/LeakCanary(1642): | mOldWidthMeasureSpec = 1073743264 
12-13 15:08:26.882 D/LeakCanary(1642): | mOutlineProvider = [email protected] (0x6fbce280) 
12-13 15:08:26.882 D/LeakCanary(1642): | mOverScrollMode = 1 
12-13 15:08:26.882 D/LeakCanary(1642): | mOverlay = null 
12-13 15:08:26.882 D/LeakCanary(1642): | mPaddingBottom = 0 
12-13 15:08:26.882 D/LeakCanary(1642): | mPaddingLeft = 0 
12-13 15:08:26.882 D/LeakCanary(1642): | mPaddingRight = 0 
12-13 15:08:26.882 D/LeakCanary(1642): | mPaddingTop = 0 
12-13 15:08:26.882 D/LeakCanary(1642): | mParent = null 
12-13 15:08:26.882 D/LeakCanary(1642): | mPendingCheckForLongPress = null 
12-13 15:08:26.882 D/LeakCanary(1642): | mPendingCheckForTap = null 
12-13 15:08:26.882 D/LeakCanary(1642): | mPerformClick = null 
12-13 15:08:26.882 D/LeakCanary(1642): | mPrivateFlags = -2127947760 
12-13 15:08:26.882 D/LeakCanary(1642): | mPrivateFlags2 = 1611867688 
12-13 15:08:26.882 D/LeakCanary(1642): | mPrivateFlags3 = 16 
12-13 15:08:26.882 D/LeakCanary(1642): | mRecreateDisplayList = false 
12-13 15:08:26.883 D/LeakCanary(1642): | mRenderNode = [email protected] (0x12e3ae60) 
12-13 15:08:26.883 D/LeakCanary(1642): | mResources = [email protected] (0x12e3ea10) 
12-13 15:08:26.883 D/LeakCanary(1642): | mRight = 1440 
12-13 15:08:26.883 D/LeakCanary(1642): | mRightPaddingDefined = false 
12-13 15:08:26.883 D/LeakCanary(1642): | mScrollCache = null 
12-13 15:08:26.883 D/LeakCanary(1642): | mScrollIndicatorDrawable = null 
12-13 15:08:26.883 D/LeakCanary(1642): | mScrollX = 0 
12-13 15:08:26.883 D/LeakCanary(1642): | mScrollY = 0 
12-13 15:08:26.883 D/LeakCanary(1642): | mSendViewScrolledAccessibilityEvent = null 
12-13 15:08:26.883 D/LeakCanary(1642): | mSendViewStateChangedAccessibilityEvent = null 
12-13 15:08:26.883 D/LeakCanary(1642): | mSendingHoverAccessibilityEvents = false 
12-13 15:08:26.883 D/LeakCanary(1642): | mStartActivityRequestWho = null 
12-13 15:08:26.883 D/LeakCanary(1642): | mStateListAnimator = null 
12-13 15:08:26.883 D/LeakCanary(1642): | mSystemUiVisibility = 0 
12-13 15:08:26.883 D/LeakCanary(1642): | mTag = null 
12-13 15:08:26.883 D/LeakCanary(1642): | mTempNestedScrollConsumed = null 
12-13 15:08:26.883 D/LeakCanary(1642): | mTop = 0 
12-13 15:08:26.883 D/LeakCanary(1642): | mTouchDelegate = null 
12-13 15:08:26.883 D/LeakCanary(1642): | mTouchSlop = 28 
12-13 15:08:26.883 D/LeakCanary(1642): | mTransformationInfo = [email protected] (0x12e3ae80) 
12-13 15:08:26.883 D/LeakCanary(1642): | mTransientStateCount = 0 
12-13 15:08:26.884 D/LeakCanary(1642): | mTransitionName = null 

回答

0

我希望你已经有了理由,但对于将来阅读这篇文章的其他人,我认为排除已知和已知泄漏的原因是: -

  • 以通知您某件坏事但已知正在发生,并且
  • 向您展示可用于避免此泄漏的hack/fix/track。
+1

感谢您的回复!但我不认为这是按预期工作的(至少不是我*预期的)。如果我排除泄漏,这意味着我知道它,并且对它的出现没有兴趣。这使得依赖LeakCanary报告变得更加困难。 – tmtrademark

+0

我认为你被“排除”这个词误导了,任何被排除的泄漏也是一个缺陷(android sdk自己创造的一个已知缺陷),并且在某些情况下可以使用黑客来治愈它。 –

+0

@tmtrademark您是否发现问题? – alexpfx