Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Inmobi Android SDK:使用本机广告时内存泄漏_Android_Memory Leaks_Inmobi - Fatal编程技术网

Inmobi Android SDK:使用本机广告时内存泄漏

Inmobi Android SDK:使用本机广告时内存泄漏,android,memory-leaks,inmobi,Android,Memory Leaks,Inmobi,当我使用本机广告时,我在inmobi SDK中检测到一个漏洞。是否有人设法解决此漏洞-它导致OOM错误 我正在使用inmobi的最新SDK: 这绝对是inmobi内存泄漏问题。我在Facebook广告网络和Flurry网络上试用过,它并没有给我造成内存泄漏。我用mopub做我的调解人 如果这个问题仍未解决,我将不得不关闭inmobi,因为它最终会使应用程序崩溃 D/LeakCanary: In com.myapp:1.0:1. D/LeakCanary: * com.myapp.activi

当我使用本机广告时,我在inmobi SDK中检测到一个漏洞。是否有人设法解决此漏洞-它导致OOM错误

我正在使用inmobi的最新SDK:

这绝对是inmobi内存泄漏问题。我在Facebook广告网络和Flurry网络上试用过,它并没有给我造成内存泄漏。我用mopub做我的调解人

如果这个问题仍未解决,我将不得不关闭inmobi,因为它最终会使应用程序崩溃

D/LeakCanary: In com.myapp:1.0:1.
 D/LeakCanary: * com.myapp.activities.MyActivity has leaked:
 D/LeakCanary: * GC ROOT static com.inmobi.ads.InMobiNative.sMappedAdUnits
 D/LeakCanary: * references java.util.WeakHashMap.elementData
 D/LeakCanary: * references array java.util.WeakHashMap$Entry[].[11]
 D/LeakCanary: * references java.util.WeakHashMap$Entry.value
 D/LeakCanary: * references com.inmobi.ads.p.l
 D/LeakCanary: * references com.inmobi.ads.InMobiNative$1.a (anonymous class implements com.inmobi.ads.AdUnit$a)
 D/LeakCanary: * references com.inmobi.ads.InMobiNative.mNativeAdListener
 D/LeakCanary: * references com.mopub.nativeads.InMobiNative$InMobiStaticNativeAd.mNativeEventListener
 D/LeakCanary: * references com.mopub.nativeads.NativeAd$1.this$0 (anonymous class implements com.mopub.nativeads.BaseNativeAd$NativeEventListener)
 D/LeakCanary: * references com.mopub.nativeads.NativeAd.mMoPubAdRenderer
 D/LeakCanary: * references com.mopub.nativeads.MoPubStaticNativeAdRenderer.mViewHolderMap
 D/LeakCanary: * references java.util.WeakHashMap.elementData
 D/LeakCanary: * references array java.util.WeakHashMap$Entry[].[11]
 D/LeakCanary: * references java.util.WeakHashMap$Entry.value
 D/LeakCanary: * references com.mopub.nativeads.StaticNativeViewHolder.mainView
 D/LeakCanary: * references android.widget.RelativeLayout.mContext
 D/LeakCanary: * leaks com.myapp.activities.MyActivity instance
 D/LeakCanary: * Reference Key: 2913e4a2-c18e-46c9-8784-0eae40a7fe96
 D/LeakCanary: * Device: unknown generic Google Nexus 5 - 5.1.0 - API 22 - 1080x1920 vbox86p
 D/LeakCanary: * Android Version: 5.1 API: 22 LeakCanary: 1.3.1
 D/LeakCanary: * Durations: watch=5025ms, gc=140ms, heap dump=1237ms, analysis=3884ms
 D/LeakCanary: * Details:
 D/LeakCanary: * Class com.inmobi.ads.InMobiNative
 D/LeakCanary: |   static $staticOverhead = byte[] [id=0x133dcdd1;length=16;size=32]
 D/LeakCanary: |   static TAG = java.lang.String [id=0x13904c00]
 D/LeakCanary: |   static sMappedAdUnits = java.util.WeakHashMap [id=0x138f7340]
 D/LeakCanary: * Instance of java.util.WeakHashMap
 D/LeakCanary: |   static $staticOverhead = byte[] [id=0x70ad06c1;length=8;size=24]
 D/LeakCanary: |   static DEFAULT_SIZE = 16
 D/LeakCanary: |   elementCount = 2
 D/LeakCanary: |   elementData = java.util.WeakHashMap$Entry[] [id=0x138effb0;length=16]
 D/LeakCanary: |   loadFactor = 7500
 D/LeakCanary: |   modCount = 4
 D/LeakCanary: |   referenceQueue = java.lang.ref.ReferenceQueue [id=0x138fc550]
 D/LeakCanary: |   threshold = 12
 D/LeakCanary: |   keySet = null
 D/LeakCanary: |   valuesCollection = null
 D/LeakCanary: * Array of java.util.WeakHashMap$Entry[]
 D/LeakCanary: |   [0] = null
 D/LeakCanary: |   [1] = null
 D/LeakCanary: |   [2] = null
 D/LeakCanary: |   [3] = null
 D/LeakCanary: |   [4] = null
 D/LeakCanary: |   [5] = null
 D/LeakCanary: |   [6] = null
 D/LeakCanary: |   [7] = null
 D/LeakCanary: |   [8] = java.util.WeakHashMap$Entry [id=0x136082e0]
 D/LeakCanary: |   [9] = null
 D/LeakCanary: |   [10] = null
 D/LeakCanary: |   [11] = java.util.WeakHashMap$Entry [id=0x139dafa0]
 D/LeakCanary: |   [12] = null
 D/LeakCanary: |   [13] = null
 D/LeakCanary: |   [14] = null
 D/LeakCanary: |   [15] = null
 D/LeakCanary: * Instance of java.util.WeakHashMap$Entry
 D/LeakCanary: |   hash = -380383093
 D/LeakCanary: |   isNull = false
 D/LeakCanary: |   next = null
 D/LeakCanary: |   value = com.inmobi.ads.p [id=0x13568680]
 D/LeakCanary: |   pendingNext = null
 D/LeakCanary: |   queue = java.lang.ref.ReferenceQueue [id=0x138fc550]
 D/LeakCanary: |   queueNext = null
 D/LeakCanary: |   referent = android.widget.RelativeLayout [id=0x13aa1800]
 D/LeakCanary: * Instance of com.inmobi.ads.p
 D/LeakCanary: |   static $staticOverhead = byte[] [id=0x134f0c01;length=8;size=24]
 D/LeakCanary: |   static a = java.lang.String [id=0x1390e420]
 D/LeakCanary: |   b = java.util.HashMap [id=0x13977f40]
 D/LeakCanary: |   c = java.util.WeakHashMap [id=0x13977f70]
 D/LeakCanary: |   d = java.lang.String [id=0x136707c0]
 D/LeakCanary: |   e = java.lang.String [id=0x13670ba0]
 D/LeakCanary: |   f = com.inmobi.ads.n [id=0x1399c2e0]
 D/LeakCanary: |   g = null
 D/LeakCanary: |   h = null
 D/LeakCanary: |   i = 0
 D/LeakCanary: |   j = 4640027
 D/LeakCanary: |   b = com.inmobi.ads.AdUnit$AdState [id=0x138fc880]
 D/LeakCanary: |   c = com.myapp.activities.KwaaiApplication [id=0x12c08c00]
 D/LeakCanary: |   d = 1458854656949
 D/LeakCanary: |   e = null
 D/LeakCanary: |   f = java.util.HashMap [id=0x13977700]
 D/LeakCanary: |   g = com.inmobi.ads.b [id=0x13393a80]
 D/LeakCanary: |   h = java.lang.String [id=0x1366fc20]
 D/LeakCanary: |   i = java.lang.String [id=0x1366f5a0]
 D/LeakCanary: |   j = 1460901143476
 D/LeakCanary: |   k = false
 D/LeakCanary: |   l = com.inmobi.ads.InMobiNative$1 [id=0x135a2160]
 D/LeakCanary: |   m = com.inmobi.rendering.RenderView [id=0x13e3b800]
 D/LeakCanary: |   n = com.inmobi.ads.an [id=0x1365dc60]
 D/LeakCanary: |   o = 1460901149036
 D/LeakCanary: |   p = 4640041
 D/LeakCanary: * Instance of com.inmobi.ads.InMobiNative$1
 D/LeakCanary: |   a = com.inmobi.ads.InMobiNative [id=0x136599c0]
 D/LeakCanary: * Instance of com.inmobi.ads.InMobiNative
 D/LeakCanary: |   static $staticOverhead = byte[] [id=0x133dcdd1;length=16;size=32]
 D/LeakCanary: |   static TAG = java.lang.String [id=0x13904c00]
 D/LeakCanary: |   static sMappedAdUnits = java.util.WeakHashMap [id=0x138f7340]
 D/LeakCanary: |   mClientCallbackHandler = com.inmobi.ads.InMobiNative$a [id=0x13977fd0]
 D/LeakCanary: |   mListener = com.inmobi.ads.InMobiNative$1 [id=0x135a2160]
 D/LeakCanary: |   mNativeAdListener = com.mopub.nativeads.InMobiNative$InMobiStaticNativeAd [id=0x13482b80]
 D/LeakCanary: |   mNativeAdUnit = com.inmobi.ads.p [id=0x13568680]
 D/LeakCanary: * Instance of com.mopub.nativeads.InMobiNative$InMobiStaticNativeAd
 D/LeakCanary: |   static $staticOverhead = byte[] [id=0x134d2801;length=80;size=96]
 D/LeakCanary: |   static $change = null
 D/LeakCanary: |   static CTA = java.lang.String [id=0x13904180]
 D/LeakCanary: |   static DESCRIPTION = java.lang.String [id=0x70390868]
 D/LeakCanary: |   static ICON = java.lang.String [id=0x70396ad8]
 D/LeakCanary: |   static IMPRESSION_MIN_TIME_VIEWED = 1000
 D/LeakCanary: |   static LANDING_URL = java.lang.String [id=0x13904220]
 D/LeakCanary: |   static RATING = java.lang.String [id=0x13904260]
 D/LeakCanary: |   static SCREENSHOTS = java.lang.String [id=0x13904280]
 D/LeakCanary: |   static TITLE = java.lang.String [id=0x703a4548]
 D/LeakCanary: |   static URL = java.lang.String [id=0x703a5820]
 D/LeakCanary: |   mContext = com.myapp.activities.KwaaiApplication [id=0x12c08c00]
 D/LeakCanary: |   mCustomEventNativeListener = com.mopub.nativeads.MoPubNative$3 [id=0x1359e320]
 D/LeakCanary: |   mImNative = com.inmobi.ads.InMobiNative [id=0x136599c0]
 D/LeakCanary: |   mImpressionTracker = com.mopub.nativeads.ImpressionTracker [id=0x13977730]
 D/LeakCanary: |   mNativeClickHandler = com.mopub.nativeads.NativeClickHandler [id=0x136592a0]
 D/LeakCanary: |   mCallToAction = java.lang.String [id=0x13680f60]
 D/LeakCanary: |   mClickDestinationUrl = java.lang.String [id=0x13680ec0]
 D/LeakCanary: |   mExtras = java.util.HashMap [id=0x13977850]
 D/LeakCanary: |   mIconImageUrl = java.lang.String [id=0x13680740]
 D/LeakCanary: |   mImpressionMinTimeViewed = 1000
 D/LeakCanary: |   mImpressionRecorded = true
 D/LeakCanary: |   mMainImageUrl = java.lang.String [id=0x13680c00]
 D/LeakCanary: |   mPrivacyInformationIconClickThroughUrl = null
 D/LeakCanary: |   mPrivacyInformationIconImageUrl = null
 D/LeakCanary: |   mStarRating = java.lang.Double [id=0x135b7130]
 D/LeakCanary: |   mText = java.lang.String [id=0x13680400]
 D/LeakCanary: |   mTitle = java.lang.String [id=0x13680260]
 D/LeakCanary: |   mClickTrackers = java.util.HashSet [id=0x135a2120]
 D/LeakCanary: |   mImpressionTrackers = java.util.HashSet [id=0x135a2110]
 D/LeakCanary: |   mNativeEventListener = com.mopub.nativeads.NativeAd$1 [id=0x135b7210]
 D/LeakCanary: * Instance of com.mopub.nativeads.NativeAd$1
 D/LeakCanary: |   this$0 = com.mopub.nativeads.NativeAd [id=0x1399cd60]
 D/LeakCanary: * Instance of com.mopub.nativeads.NativeAd
 D/LeakCanary: |   mAdUnitId = java.lang.String [id=0x12df3320]
 D/LeakCanary: |   mBaseNativeAd = com.mopub.nativeads.InMobiNative$InMobiStaticNativeAd [id=0x13482b80]
 D/LeakCanary: |   mClickTrackers = java.util.HashSet [id=0x135b71d0]
 D/LeakCanary: |   mContext = com.myapp.activities.KwaaiApplication [id=0x12c08c00]
 D/LeakCanary: |   mImpressionTrackers = java.util.HashSet [id=0x135b7190]
 D/LeakCanary: |   mIsClicked = false
 D/LeakCanary: |   mIsDestroyed = true
 D/LeakCanary: |   mMoPubAdRenderer = com.mopub.nativeads.MoPubStaticNativeAdRenderer [id=0x135517a0]
 D/LeakCanary: |   mMoPubNativeEventListener = null
 D/LeakCanary: |   mRecordedImpression = true
 D/LeakCanary: * Instance of com.mopub.nativeads.MoPubStaticNativeAdRenderer
 D/LeakCanary: |   mViewBinder = com.mopub.nativeads.ViewBinder [id=0x13781d00]
 D/LeakCanary: |   mViewHolderMap = java.util.WeakHashMap [id=0x13781d60]
 D/LeakCanary: * Instance of java.util.WeakHashMap
 D/LeakCanary: |   static $staticOverhead = byte[] [id=0x70ad06c1;length=8;size=24]
 D/LeakCanary: |   static DEFAULT_SIZE = 16
 D/LeakCanary: |   elementCount = 1
 D/LeakCanary: |   elementData = java.util.WeakHashMap$Entry[] [id=0x138b3510;length=16]
 D/LeakCanary: |   loadFactor = 7500
 D/LeakCanary: |   modCount = 1
 D/LeakCanary: |   referenceQueue = java.lang.ref.ReferenceQueue [id=0x135517b0]
 D/LeakCanary: |   threshold = 12
 D/LeakCanary: |   keySet = null
 D/LeakCanary: |   valuesCollection = null
 D/LeakCanary: * Array of java.util.WeakHashMap$Entry[]
 D/LeakCanary: |   [0] = null
 D/LeakCanary: |   [1] = null
 D/LeakCanary: |   [2] = null
 D/LeakCanary: |   [3] = null
 D/LeakCanary: |   [4] = null
 D/LeakCanary: |   [5] = null
 D/LeakCanary: |   [6] = null
 D/LeakCanary: |   [7] = null
 D/LeakCanary: |   [8] = null
 D/LeakCanary: |   [9] = null
 D/LeakCanary: |   [10] = null
 D/LeakCanary: |   [11] = java.util.WeakHashMap$Entry [id=0x139e81c0]
 D/LeakCanary: |   [12] = null
 D/LeakCanary: |   [13] = null
 D/LeakCanary: |   [14] = null
 D/LeakCanary: |   [15] = null
 D/LeakCanary: * Instance of java.util.WeakHashMap$Entry
 D/LeakCanary: |   hash = -380383093
 D/LeakCanary: |   isNull = false
 D/LeakCanary: |   next = null
 D/LeakCanary: |   value = com.mopub.nativeads.StaticNativeViewHolder [id=0x139e8190]
 D/LeakCanary: |   pendingNext = null
 D/LeakCanary: |   queue = java.lang.ref.ReferenceQueue [id=0x135517b0]
 D/LeakCanary: |   queueNext = null
 D/LeakCanary: |   referent = android.widget.RelativeLayout [id=0x13aa1800]
 D/LeakCanary: * Instance of com.mopub.nativeads.StaticNativeViewHolder
 D/LeakCanary: |   static $staticOverhead = byte[] [id=0x13918721;length=8;size=24]
 D/LeakCanary: |   static EMPTY_VIEW_HOLDER = com.mopub.nativeads.StaticNativeViewHolder [id=0x136ea940]
 D/LeakCanary: |   callToActionView = com.myapp.customshapes.ForegroundTextView [id=0x13aa3c00]
 D/LeakCanary: |   iconImageView = android.support.v7.widget.AppCompatImageView [id=0x13aa2000]
 D/LeakCanary: |   mainImageView = android.support.v7.widget.AppCompatImageView [id=0x13aa4000]
 D/LeakCanary: |   mainView = android.widget.RelativeLayout [id=0x13aa1800]
 D/LeakCanary: |   privacyInformationIconImageView = android.support.v7.widget.AppCompatImageView [id=0x13aa2c00]
 D/LeakCanary: |   textView = android.support.v7.widget.AppCompatTextView [id=0x13aa3000]
 D/LeakCanary: |   titleView = android.support.v7.widget.AppCompatTextView [id=0x13aa2400]
 D/LeakCanary: * Instance of android.widget.RelativeLayout
 D/LeakCanary: |   static $staticOverhead = byte[] [id=0x70b71671;length=224;size=240]
 D/LeakCanary: |   static ABOVE = 2
 D/LeakCanary: |   static ALIGN_BASELINE = 4
 D/LeakCanary: |   static ALIGN_BOTTOM = 8
 D/LeakCanary: |   static ALIGN_END = 19
 D/LeakCanary: |   static ALIGN_LEFT = 5
 D/LeakCanary: |   static ALIGN_PARENT_BOTTOM = 12
 D/LeakCanary: |   static ALIGN_PARENT_END = 21
 D/LeakCanary: |   static ALIGN_PARENT_LEFT = 9
 D/LeakCanary: |   static ALIGN_PARENT_RIGHT = 11
 D/LeakCanary: |   static ALIGN_PARENT_START = 20
 D/LeakCanary: |   static ALIGN_PARENT_TOP = 10
 D/LeakCanary: |   static ALIGN_RIGHT = 7
 D/LeakCanary: |   static ALIGN_START = 18
 D/LeakCanary: |   static ALIGN_TOP = 6
 D/LeakCanary: |   static BELOW = 3
 D/LeakCanary: |   static CENTER_HORIZONTAL = 14
 D/LeakCanary: |   static CENTER_IN_PARENT = 13
 D/LeakCanary: |   static CENTER_VERTICAL = 15
 D/LeakCanary: |   static DEFAULT_WIDTH = 65536
 D/LeakCanary: |   static END_OF = 17
 D/LeakCanary: |   static LEFT_OF = 0
 D/LeakCanary: |   static RIGHT_OF = 1
 D/LeakCanary: |   static RULES_HORIZONTAL = int[] [id=0x70a9a650;length=8;size=48]
 D/LeakCanary: |   static RULES_VERTICAL = int[] [id=0x70a9b310;length=5;size=32]
 D/LeakCanary: |   static START_OF = 16
 D/LeakCanary: |   static TRUE = -1
 D/LeakCanary: |   static VALUE_NOT_SET = -2147483648
 D/LeakCanary: |   static VERB_COUNT = 22
 D/LeakCanary: |   mAllowBrokenMeasureSpecs = false
 D/LeakCanary: |   mBaselineView = null
 D/LeakCanary: |   mContentBounds = android.graphics.Rect [id=0x136d01c0]
 D/LeakCanary: |   mDirtyHierarchy = false
 D/LeakCanary: |   mGraph = android.widget.RelativeLayout$DependencyGraph [id=0x136d0260]
 D/LeakCanary: |   mGravity = 8388659
 D/LeakCanary: |   mHasBaselineAlignedChild = false
 D/LeakCanary: |   mIgnoreGravity = -1
 D/LeakCanary: |   mMeasureVerticalWithPaddingMargin = true
 D/LeakCanary: |   mSelfBounds = android.graphics.Rect [id=0x136d0240]
 D/LeakCanary: |   mSortedHorizontalChildren = android.view.View[] [id=0x136d2f00;length=2]
 D/LeakCanary: |   mSortedVerticalChildren = android.view.View[] [id=0x136d2ee0;length=2]
 D/LeakCanary: |   mTopToBottomLeftToRightSet = null
 D/LeakCanary: |   mAnimationListener = null
 D/LeakCanary: |   mCachePaint = null
 D/LeakCanary: |   mChildAcceptsDrag = false
 D/LeakCanary: |   mChildCountWithTransientState = 0
 D/LeakCanary: |   mChildTransformation = null
 D/LeakCanary: |   mChildren = android.view.View[] [id=0x133771c0;length=12]
 D/LeakCanary: |   mChildrenCount = 2
 D/LeakCanary: |   mCurrentDrag = null
 D/LeakCanary: |   mCurrentDragView = null
 D/LeakCanary: |   mDisappearingChildren = null
 D/LeakCanary: |   mDragNotifiedChildren = null
 D/LeakCanary: |   mFirstHoverTarget = null
 D/LeakCanary: |   mFirstTouchTarget = null
 D/LeakCanary: |   mFocused = null
 D/LeakCanary: |   mGroupFlags = 2244691
 D/LeakCanary: |   mHoveredSelf = false
 D/LeakCanary: |   mInvalidateRegion = null
 D/LeakCanary: |   mInvalidationTransformation = null
 D/LeakCanary: |   mLastTouchDownIndex = 1
 D/LeakCanary: |   mLastTouchDownTime = 4647420
 D/LeakCanary: |   mLastTouchDownX = 475.55966
 D/LeakCanary: |   mLastTouchDownY = 582.7595
 D/LeakCanary: |   mLayoutAnimationController = null
 D/LeakCanary: |   mLayoutCalledWhileSuppressed = false
 D/LeakCanary: |   mLayoutMode = -1
 D/LeakCanary: |   mLayoutTransitionListener = android.view.ViewGroup$3 [id=0x135b7d70]
 D/LeakCanary: |   mLocalPoint = null
 D/LeakCanary: |   mNestedScrollAxes = 0
 D/LeakCanary: |   mOnHierarchyChangeListener = null
 D/LeakCanary: |   mPersistentDrawingCache = 2
 D/LeakCanary: |   mPreSortedChildren = java.util.ArrayList [id=0x13760120]
 D/LeakCanary: |   mSuppressLayout = false
 D/LeakCanary: |   mTempPoint = float[] [id=0x13760160;length=2;size=24]
 D/LeakCanary: |   mTransition = null
 D/LeakCanary: |   mTransitioningViews = null
 D/LeakCanary: |   mVisibilityChangingChildren = null

我们正在研究这一点,并将尽快向您更新。请您将您的实现托管在某个地方,并共享指向它的链接。我已经使用Mopub作为中介对InMobi原生广告进行了测试。我没有内存泄漏。你好。抱歉,不幸的是,我的实现是封闭源代码的,因此我无法承载它。我想创建一个显示此错误的回购协议,但这将花费我一些时间,我现在没有时间。执行以下操作时会发生错误:我从活动A导航到活动B,其中活动A包含通过mopub显示inmobi广告的recyclerview,活动B包含通过mopub显示inmobi广告的另一个recyclerview。当我从活动B导航回活动A时,leakcanary将记录此错误。我们正在对此进行调查,并将尽快向您进行更新。您是否可以在某个位置托管您的实现并共享指向它的链接。我已经使用Mopub作为中介对InMobi原生广告进行了测试。我没有内存泄漏。你好。抱歉,不幸的是,我的实现是封闭源代码的,因此我无法承载它。我想创建一个显示此错误的回购协议,但这将花费我一些时间,我现在没有时间。执行以下操作时会发生错误:我从活动A导航到活动B,其中活动A包含通过mopub显示inmobi广告的recyclerview,活动B包含通过mopub显示inmobi广告的另一个recyclerview。当我从活动B导航回活动A时,leakcanary将记录此错误。
D/LeakCanary: In com.myapp:1.0:1.
 D/LeakCanary: * com.myapp.activities.MyActivity has leaked:
 D/LeakCanary: * GC ROOT static com.inmobi.ads.InMobiNative.sMappedAdUnits
 D/LeakCanary: * references java.util.WeakHashMap.elementData
 D/LeakCanary: * references array java.util.WeakHashMap$Entry[].[11]
 D/LeakCanary: * references java.util.WeakHashMap$Entry.value
 D/LeakCanary: * references com.inmobi.ads.p.l
 D/LeakCanary: * references com.inmobi.ads.InMobiNative$1.a (anonymous class implements com.inmobi.ads.AdUnit$a)
 D/LeakCanary: * references com.inmobi.ads.InMobiNative.mNativeAdListener
 D/LeakCanary: * references com.mopub.nativeads.InMobiNative$InMobiStaticNativeAd.mNativeEventListener
 D/LeakCanary: * references com.mopub.nativeads.NativeAd$1.this$0 (anonymous class implements com.mopub.nativeads.BaseNativeAd$NativeEventListener)
 D/LeakCanary: * references com.mopub.nativeads.NativeAd.mMoPubAdRenderer
 D/LeakCanary: * references com.mopub.nativeads.MoPubStaticNativeAdRenderer.mViewHolderMap
 D/LeakCanary: * references java.util.WeakHashMap.elementData
 D/LeakCanary: * references array java.util.WeakHashMap$Entry[].[11]
 D/LeakCanary: * references java.util.WeakHashMap$Entry.value
 D/LeakCanary: * references com.mopub.nativeads.StaticNativeViewHolder.mainView
 D/LeakCanary: * references android.widget.RelativeLayout.mContext
 D/LeakCanary: * leaks com.myapp.activities.MyActivity instance
 D/LeakCanary: * Reference Key: 2913e4a2-c18e-46c9-8784-0eae40a7fe96
 D/LeakCanary: * Device: unknown generic Google Nexus 5 - 5.1.0 - API 22 - 1080x1920 vbox86p
 D/LeakCanary: * Android Version: 5.1 API: 22 LeakCanary: 1.3.1
 D/LeakCanary: * Durations: watch=5025ms, gc=140ms, heap dump=1237ms, analysis=3884ms
 D/LeakCanary: * Details:
 D/LeakCanary: * Class com.inmobi.ads.InMobiNative
 D/LeakCanary: |   static $staticOverhead = byte[] [id=0x133dcdd1;length=16;size=32]
 D/LeakCanary: |   static TAG = java.lang.String [id=0x13904c00]
 D/LeakCanary: |   static sMappedAdUnits = java.util.WeakHashMap [id=0x138f7340]
 D/LeakCanary: * Instance of java.util.WeakHashMap
 D/LeakCanary: |   static $staticOverhead = byte[] [id=0x70ad06c1;length=8;size=24]
 D/LeakCanary: |   static DEFAULT_SIZE = 16
 D/LeakCanary: |   elementCount = 2
 D/LeakCanary: |   elementData = java.util.WeakHashMap$Entry[] [id=0x138effb0;length=16]
 D/LeakCanary: |   loadFactor = 7500
 D/LeakCanary: |   modCount = 4
 D/LeakCanary: |   referenceQueue = java.lang.ref.ReferenceQueue [id=0x138fc550]
 D/LeakCanary: |   threshold = 12
 D/LeakCanary: |   keySet = null
 D/LeakCanary: |   valuesCollection = null
 D/LeakCanary: * Array of java.util.WeakHashMap$Entry[]
 D/LeakCanary: |   [0] = null
 D/LeakCanary: |   [1] = null
 D/LeakCanary: |   [2] = null
 D/LeakCanary: |   [3] = null
 D/LeakCanary: |   [4] = null
 D/LeakCanary: |   [5] = null
 D/LeakCanary: |   [6] = null
 D/LeakCanary: |   [7] = null
 D/LeakCanary: |   [8] = java.util.WeakHashMap$Entry [id=0x136082e0]
 D/LeakCanary: |   [9] = null
 D/LeakCanary: |   [10] = null
 D/LeakCanary: |   [11] = java.util.WeakHashMap$Entry [id=0x139dafa0]
 D/LeakCanary: |   [12] = null
 D/LeakCanary: |   [13] = null
 D/LeakCanary: |   [14] = null
 D/LeakCanary: |   [15] = null
 D/LeakCanary: * Instance of java.util.WeakHashMap$Entry
 D/LeakCanary: |   hash = -380383093
 D/LeakCanary: |   isNull = false
 D/LeakCanary: |   next = null
 D/LeakCanary: |   value = com.inmobi.ads.p [id=0x13568680]
 D/LeakCanary: |   pendingNext = null
 D/LeakCanary: |   queue = java.lang.ref.ReferenceQueue [id=0x138fc550]
 D/LeakCanary: |   queueNext = null
 D/LeakCanary: |   referent = android.widget.RelativeLayout [id=0x13aa1800]
 D/LeakCanary: * Instance of com.inmobi.ads.p
 D/LeakCanary: |   static $staticOverhead = byte[] [id=0x134f0c01;length=8;size=24]
 D/LeakCanary: |   static a = java.lang.String [id=0x1390e420]
 D/LeakCanary: |   b = java.util.HashMap [id=0x13977f40]
 D/LeakCanary: |   c = java.util.WeakHashMap [id=0x13977f70]
 D/LeakCanary: |   d = java.lang.String [id=0x136707c0]
 D/LeakCanary: |   e = java.lang.String [id=0x13670ba0]
 D/LeakCanary: |   f = com.inmobi.ads.n [id=0x1399c2e0]
 D/LeakCanary: |   g = null
 D/LeakCanary: |   h = null
 D/LeakCanary: |   i = 0
 D/LeakCanary: |   j = 4640027
 D/LeakCanary: |   b = com.inmobi.ads.AdUnit$AdState [id=0x138fc880]
 D/LeakCanary: |   c = com.myapp.activities.KwaaiApplication [id=0x12c08c00]
 D/LeakCanary: |   d = 1458854656949
 D/LeakCanary: |   e = null
 D/LeakCanary: |   f = java.util.HashMap [id=0x13977700]
 D/LeakCanary: |   g = com.inmobi.ads.b [id=0x13393a80]
 D/LeakCanary: |   h = java.lang.String [id=0x1366fc20]
 D/LeakCanary: |   i = java.lang.String [id=0x1366f5a0]
 D/LeakCanary: |   j = 1460901143476
 D/LeakCanary: |   k = false
 D/LeakCanary: |   l = com.inmobi.ads.InMobiNative$1 [id=0x135a2160]
 D/LeakCanary: |   m = com.inmobi.rendering.RenderView [id=0x13e3b800]
 D/LeakCanary: |   n = com.inmobi.ads.an [id=0x1365dc60]
 D/LeakCanary: |   o = 1460901149036
 D/LeakCanary: |   p = 4640041
 D/LeakCanary: * Instance of com.inmobi.ads.InMobiNative$1
 D/LeakCanary: |   a = com.inmobi.ads.InMobiNative [id=0x136599c0]
 D/LeakCanary: * Instance of com.inmobi.ads.InMobiNative
 D/LeakCanary: |   static $staticOverhead = byte[] [id=0x133dcdd1;length=16;size=32]
 D/LeakCanary: |   static TAG = java.lang.String [id=0x13904c00]
 D/LeakCanary: |   static sMappedAdUnits = java.util.WeakHashMap [id=0x138f7340]
 D/LeakCanary: |   mClientCallbackHandler = com.inmobi.ads.InMobiNative$a [id=0x13977fd0]
 D/LeakCanary: |   mListener = com.inmobi.ads.InMobiNative$1 [id=0x135a2160]
 D/LeakCanary: |   mNativeAdListener = com.mopub.nativeads.InMobiNative$InMobiStaticNativeAd [id=0x13482b80]
 D/LeakCanary: |   mNativeAdUnit = com.inmobi.ads.p [id=0x13568680]
 D/LeakCanary: * Instance of com.mopub.nativeads.InMobiNative$InMobiStaticNativeAd
 D/LeakCanary: |   static $staticOverhead = byte[] [id=0x134d2801;length=80;size=96]
 D/LeakCanary: |   static $change = null
 D/LeakCanary: |   static CTA = java.lang.String [id=0x13904180]
 D/LeakCanary: |   static DESCRIPTION = java.lang.String [id=0x70390868]
 D/LeakCanary: |   static ICON = java.lang.String [id=0x70396ad8]
 D/LeakCanary: |   static IMPRESSION_MIN_TIME_VIEWED = 1000
 D/LeakCanary: |   static LANDING_URL = java.lang.String [id=0x13904220]
 D/LeakCanary: |   static RATING = java.lang.String [id=0x13904260]
 D/LeakCanary: |   static SCREENSHOTS = java.lang.String [id=0x13904280]
 D/LeakCanary: |   static TITLE = java.lang.String [id=0x703a4548]
 D/LeakCanary: |   static URL = java.lang.String [id=0x703a5820]
 D/LeakCanary: |   mContext = com.myapp.activities.KwaaiApplication [id=0x12c08c00]
 D/LeakCanary: |   mCustomEventNativeListener = com.mopub.nativeads.MoPubNative$3 [id=0x1359e320]
 D/LeakCanary: |   mImNative = com.inmobi.ads.InMobiNative [id=0x136599c0]
 D/LeakCanary: |   mImpressionTracker = com.mopub.nativeads.ImpressionTracker [id=0x13977730]
 D/LeakCanary: |   mNativeClickHandler = com.mopub.nativeads.NativeClickHandler [id=0x136592a0]
 D/LeakCanary: |   mCallToAction = java.lang.String [id=0x13680f60]
 D/LeakCanary: |   mClickDestinationUrl = java.lang.String [id=0x13680ec0]
 D/LeakCanary: |   mExtras = java.util.HashMap [id=0x13977850]
 D/LeakCanary: |   mIconImageUrl = java.lang.String [id=0x13680740]
 D/LeakCanary: |   mImpressionMinTimeViewed = 1000
 D/LeakCanary: |   mImpressionRecorded = true
 D/LeakCanary: |   mMainImageUrl = java.lang.String [id=0x13680c00]
 D/LeakCanary: |   mPrivacyInformationIconClickThroughUrl = null
 D/LeakCanary: |   mPrivacyInformationIconImageUrl = null
 D/LeakCanary: |   mStarRating = java.lang.Double [id=0x135b7130]
 D/LeakCanary: |   mText = java.lang.String [id=0x13680400]
 D/LeakCanary: |   mTitle = java.lang.String [id=0x13680260]
 D/LeakCanary: |   mClickTrackers = java.util.HashSet [id=0x135a2120]
 D/LeakCanary: |   mImpressionTrackers = java.util.HashSet [id=0x135a2110]
 D/LeakCanary: |   mNativeEventListener = com.mopub.nativeads.NativeAd$1 [id=0x135b7210]
 D/LeakCanary: * Instance of com.mopub.nativeads.NativeAd$1
 D/LeakCanary: |   this$0 = com.mopub.nativeads.NativeAd [id=0x1399cd60]
 D/LeakCanary: * Instance of com.mopub.nativeads.NativeAd
 D/LeakCanary: |   mAdUnitId = java.lang.String [id=0x12df3320]
 D/LeakCanary: |   mBaseNativeAd = com.mopub.nativeads.InMobiNative$InMobiStaticNativeAd [id=0x13482b80]
 D/LeakCanary: |   mClickTrackers = java.util.HashSet [id=0x135b71d0]
 D/LeakCanary: |   mContext = com.myapp.activities.KwaaiApplication [id=0x12c08c00]
 D/LeakCanary: |   mImpressionTrackers = java.util.HashSet [id=0x135b7190]
 D/LeakCanary: |   mIsClicked = false
 D/LeakCanary: |   mIsDestroyed = true
 D/LeakCanary: |   mMoPubAdRenderer = com.mopub.nativeads.MoPubStaticNativeAdRenderer [id=0x135517a0]
 D/LeakCanary: |   mMoPubNativeEventListener = null
 D/LeakCanary: |   mRecordedImpression = true
 D/LeakCanary: * Instance of com.mopub.nativeads.MoPubStaticNativeAdRenderer
 D/LeakCanary: |   mViewBinder = com.mopub.nativeads.ViewBinder [id=0x13781d00]
 D/LeakCanary: |   mViewHolderMap = java.util.WeakHashMap [id=0x13781d60]
 D/LeakCanary: * Instance of java.util.WeakHashMap
 D/LeakCanary: |   static $staticOverhead = byte[] [id=0x70ad06c1;length=8;size=24]
 D/LeakCanary: |   static DEFAULT_SIZE = 16
 D/LeakCanary: |   elementCount = 1
 D/LeakCanary: |   elementData = java.util.WeakHashMap$Entry[] [id=0x138b3510;length=16]
 D/LeakCanary: |   loadFactor = 7500
 D/LeakCanary: |   modCount = 1
 D/LeakCanary: |   referenceQueue = java.lang.ref.ReferenceQueue [id=0x135517b0]
 D/LeakCanary: |   threshold = 12
 D/LeakCanary: |   keySet = null
 D/LeakCanary: |   valuesCollection = null
 D/LeakCanary: * Array of java.util.WeakHashMap$Entry[]
 D/LeakCanary: |   [0] = null
 D/LeakCanary: |   [1] = null
 D/LeakCanary: |   [2] = null
 D/LeakCanary: |   [3] = null
 D/LeakCanary: |   [4] = null
 D/LeakCanary: |   [5] = null
 D/LeakCanary: |   [6] = null
 D/LeakCanary: |   [7] = null
 D/LeakCanary: |   [8] = null
 D/LeakCanary: |   [9] = null
 D/LeakCanary: |   [10] = null
 D/LeakCanary: |   [11] = java.util.WeakHashMap$Entry [id=0x139e81c0]
 D/LeakCanary: |   [12] = null
 D/LeakCanary: |   [13] = null
 D/LeakCanary: |   [14] = null
 D/LeakCanary: |   [15] = null
 D/LeakCanary: * Instance of java.util.WeakHashMap$Entry
 D/LeakCanary: |   hash = -380383093
 D/LeakCanary: |   isNull = false
 D/LeakCanary: |   next = null
 D/LeakCanary: |   value = com.mopub.nativeads.StaticNativeViewHolder [id=0x139e8190]
 D/LeakCanary: |   pendingNext = null
 D/LeakCanary: |   queue = java.lang.ref.ReferenceQueue [id=0x135517b0]
 D/LeakCanary: |   queueNext = null
 D/LeakCanary: |   referent = android.widget.RelativeLayout [id=0x13aa1800]
 D/LeakCanary: * Instance of com.mopub.nativeads.StaticNativeViewHolder
 D/LeakCanary: |   static $staticOverhead = byte[] [id=0x13918721;length=8;size=24]
 D/LeakCanary: |   static EMPTY_VIEW_HOLDER = com.mopub.nativeads.StaticNativeViewHolder [id=0x136ea940]
 D/LeakCanary: |   callToActionView = com.myapp.customshapes.ForegroundTextView [id=0x13aa3c00]
 D/LeakCanary: |   iconImageView = android.support.v7.widget.AppCompatImageView [id=0x13aa2000]
 D/LeakCanary: |   mainImageView = android.support.v7.widget.AppCompatImageView [id=0x13aa4000]
 D/LeakCanary: |   mainView = android.widget.RelativeLayout [id=0x13aa1800]
 D/LeakCanary: |   privacyInformationIconImageView = android.support.v7.widget.AppCompatImageView [id=0x13aa2c00]
 D/LeakCanary: |   textView = android.support.v7.widget.AppCompatTextView [id=0x13aa3000]
 D/LeakCanary: |   titleView = android.support.v7.widget.AppCompatTextView [id=0x13aa2400]
 D/LeakCanary: * Instance of android.widget.RelativeLayout
 D/LeakCanary: |   static $staticOverhead = byte[] [id=0x70b71671;length=224;size=240]
 D/LeakCanary: |   static ABOVE = 2
 D/LeakCanary: |   static ALIGN_BASELINE = 4
 D/LeakCanary: |   static ALIGN_BOTTOM = 8
 D/LeakCanary: |   static ALIGN_END = 19
 D/LeakCanary: |   static ALIGN_LEFT = 5
 D/LeakCanary: |   static ALIGN_PARENT_BOTTOM = 12
 D/LeakCanary: |   static ALIGN_PARENT_END = 21
 D/LeakCanary: |   static ALIGN_PARENT_LEFT = 9
 D/LeakCanary: |   static ALIGN_PARENT_RIGHT = 11
 D/LeakCanary: |   static ALIGN_PARENT_START = 20
 D/LeakCanary: |   static ALIGN_PARENT_TOP = 10
 D/LeakCanary: |   static ALIGN_RIGHT = 7
 D/LeakCanary: |   static ALIGN_START = 18
 D/LeakCanary: |   static ALIGN_TOP = 6
 D/LeakCanary: |   static BELOW = 3
 D/LeakCanary: |   static CENTER_HORIZONTAL = 14
 D/LeakCanary: |   static CENTER_IN_PARENT = 13
 D/LeakCanary: |   static CENTER_VERTICAL = 15
 D/LeakCanary: |   static DEFAULT_WIDTH = 65536
 D/LeakCanary: |   static END_OF = 17
 D/LeakCanary: |   static LEFT_OF = 0
 D/LeakCanary: |   static RIGHT_OF = 1
 D/LeakCanary: |   static RULES_HORIZONTAL = int[] [id=0x70a9a650;length=8;size=48]
 D/LeakCanary: |   static RULES_VERTICAL = int[] [id=0x70a9b310;length=5;size=32]
 D/LeakCanary: |   static START_OF = 16
 D/LeakCanary: |   static TRUE = -1
 D/LeakCanary: |   static VALUE_NOT_SET = -2147483648
 D/LeakCanary: |   static VERB_COUNT = 22
 D/LeakCanary: |   mAllowBrokenMeasureSpecs = false
 D/LeakCanary: |   mBaselineView = null
 D/LeakCanary: |   mContentBounds = android.graphics.Rect [id=0x136d01c0]
 D/LeakCanary: |   mDirtyHierarchy = false
 D/LeakCanary: |   mGraph = android.widget.RelativeLayout$DependencyGraph [id=0x136d0260]
 D/LeakCanary: |   mGravity = 8388659
 D/LeakCanary: |   mHasBaselineAlignedChild = false
 D/LeakCanary: |   mIgnoreGravity = -1
 D/LeakCanary: |   mMeasureVerticalWithPaddingMargin = true
 D/LeakCanary: |   mSelfBounds = android.graphics.Rect [id=0x136d0240]
 D/LeakCanary: |   mSortedHorizontalChildren = android.view.View[] [id=0x136d2f00;length=2]
 D/LeakCanary: |   mSortedVerticalChildren = android.view.View[] [id=0x136d2ee0;length=2]
 D/LeakCanary: |   mTopToBottomLeftToRightSet = null
 D/LeakCanary: |   mAnimationListener = null
 D/LeakCanary: |   mCachePaint = null
 D/LeakCanary: |   mChildAcceptsDrag = false
 D/LeakCanary: |   mChildCountWithTransientState = 0
 D/LeakCanary: |   mChildTransformation = null
 D/LeakCanary: |   mChildren = android.view.View[] [id=0x133771c0;length=12]
 D/LeakCanary: |   mChildrenCount = 2
 D/LeakCanary: |   mCurrentDrag = null
 D/LeakCanary: |   mCurrentDragView = null
 D/LeakCanary: |   mDisappearingChildren = null
 D/LeakCanary: |   mDragNotifiedChildren = null
 D/LeakCanary: |   mFirstHoverTarget = null
 D/LeakCanary: |   mFirstTouchTarget = null
 D/LeakCanary: |   mFocused = null
 D/LeakCanary: |   mGroupFlags = 2244691
 D/LeakCanary: |   mHoveredSelf = false
 D/LeakCanary: |   mInvalidateRegion = null
 D/LeakCanary: |   mInvalidationTransformation = null
 D/LeakCanary: |   mLastTouchDownIndex = 1
 D/LeakCanary: |   mLastTouchDownTime = 4647420
 D/LeakCanary: |   mLastTouchDownX = 475.55966
 D/LeakCanary: |   mLastTouchDownY = 582.7595
 D/LeakCanary: |   mLayoutAnimationController = null
 D/LeakCanary: |   mLayoutCalledWhileSuppressed = false
 D/LeakCanary: |   mLayoutMode = -1
 D/LeakCanary: |   mLayoutTransitionListener = android.view.ViewGroup$3 [id=0x135b7d70]
 D/LeakCanary: |   mLocalPoint = null
 D/LeakCanary: |   mNestedScrollAxes = 0
 D/LeakCanary: |   mOnHierarchyChangeListener = null
 D/LeakCanary: |   mPersistentDrawingCache = 2
 D/LeakCanary: |   mPreSortedChildren = java.util.ArrayList [id=0x13760120]
 D/LeakCanary: |   mSuppressLayout = false
 D/LeakCanary: |   mTempPoint = float[] [id=0x13760160;length=2;size=24]
 D/LeakCanary: |   mTransition = null
 D/LeakCanary: |   mTransitioningViews = null
 D/LeakCanary: |   mVisibilityChangingChildren = null