Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

出现内存泄漏的问题 #182

Open
GGjin opened this issue May 14, 2018 · 2 comments
Open

出现内存泄漏的问题 #182

GGjin opened this issue May 14, 2018 · 2 comments
Labels
expired 已不适用于3.x之后的版本

Comments

@GGjin
Copy link

GGjin commented May 14, 2018

下面是LeakCanary检测出来的日志

@GGjin
Copy link
Author

GGjin commented May 14, 2018

In com.anpxd.ewalker.beta:1.1.9:21.

  • com.anpxd.ewalker.activity.CarEntryFirstEditActivity has leaked:

  • GC ROOT android.os.HandlerThread.

  • references android.os.Message.obj

  • references cn.qqtheme.framework.picker.DatePicker.activity

  • leaks com.anpxd.ewalker.activity.CarEntryFirstEditActivity instance

  • Retaining: 130 kB.

  • Reference Key: 6466bdb6-b062-4273-8851-b6896ce19de4

  • Device: Xiaomi Xiaomi MI 6 sagit

  • Android Version: 8.0.0 API: 26 LeakCanary: 1.5.4 74837f0

  • Durations: watch=5109ms, gc=230ms, heap dump=1697ms, analysis=225748ms

  • Details:

  • Instance of android.os.HandlerThread
    | static $classOverhead = byte[424]@1899939009 (0x713ec4c1)
    | mHandler = null
    | mLooper = android.os.Looper@337389040 (0x141c25f0)
    | mPriority = -2
    | mTid = 27324
    | blocker = null
    | blockerLock = java.lang.Object@347224608 (0x14b23a20)
    | contextClassLoader = dalvik.system.PathClassLoader@337718792 (0x14212e08)
    | daemon = false
    | eetop = 0
    | group = java.lang.ThreadGroup@1892791192 (0x70d1b398)
    | inheritableThreadLocals = null
    | inheritedAccessControlContext = java.security.AccessControlContext@347224616 (0x14b23a28)
    | lock = java.lang.Object@347224624 (0x14b23a30)
    | name = java.lang.String@1900428552 (0x71463d08)
    | nativeParkEventPointer = 0
    | nativePeer = 494164600832
    | parkBlocker = null
    | parkState = 1
    | priority = 5
    | single_step = false
    | stackSize = 0
    | started = true
    | stillborn = false
    | target = null
    | threadLocalRandomProbe = 0
    | threadLocalRandomSecondarySeed = 0
    | threadLocalRandomSeed = 0
    | threadLocals = java.lang.ThreadLocal$ThreadLocalMap@347224632 (0x14b23a38)
    | threadQ = null
    | threadStatus = 0
    | tid = 874
    | uncaughtExceptionHandler = null
    | shadow$klass = android.os.HandlerThread
    | shadow$monitor = 1073743193

  • Instance of android.os.Message
    | static gCheckRecycle = true
    | static FLAGS_TO_CLEAR_ON_COPY_FROM = 1
    | static MAX_POOL_SIZE = 50
    | static sPool = android.os.Message@346765824 (0x14ab3a00)
    | static sPoolSync = java.lang.Object@1898557960 (0x7129b208)
    | static FLAG_ASYNCHRONOUS = 2
    | static FLAG_IN_USE = 1
    | static $classOverhead = byte[289]@1899154937 (0x7132cdf9)
    | static CREATOR = android.os.Message$1@1898652288 (0x712b2280)
    | static sPoolSize = 50
    | arg1 = 0
    | arg2 = 0
    | callback = null
    | data = null
    | flags = 0
    | next = null
    | obj = cn.qqtheme.framework.picker.DatePicker@346776664 (0x14ab6458)
    | replyTo = null
    | sendingUid = -1
    | target = android.app.Dialog$ListenersHandler@346776952 (0x14ab6578)
    | what = 67
    | when = 0
    | shadow$klass = android.os.Message
    | shadow$monitor = 0

  • Instance of cn.qqtheme.framework.picker.DatePicker
    | static $classOverhead = byte[1016]@338114601 (0x14273829)
    | dateMode = 1
    | dayLabel = java.lang.String@337808320 (0x14228bc0)
    | days = java.util.ArrayList@346777008 (0x14ab65b0)
    | endDay = 31
    | endHour = 23
    | endMinute = 59
    | endMonth = 5
    | endYear = 2018
    | hourLabel = java.lang.String@337808432 (0x14228c30)
    | hours = java.util.ArrayList@346777032 (0x14ab65c8)
    | minuteLabel = java.lang.String@337751240 (0x1421acc8)
    | minutes = java.util.ArrayList@346777056 (0x14ab65e0)
    | monthLabel = java.lang.String@337814280 (0x1422a308)
    | months = java.util.ArrayList@346777080 (0x14ab65f8)
    | onDateTimePickListener = cn.qqtheme.framework.picker.DatePicker$3@346777104 (0x14ab6610)
    | onWheelListener = null
    | resetWhileWheel = true
    | selectedDayIndex = 0
    | selectedHour = java.lang.String@1892856544 (0x70d2b2e0)
    | selectedMinute = java.lang.String@1892856544 (0x70d2b2e0)
    | selectedMonthIndex = 4
    | selectedYearIndex = 19
    | startDay = 1
    | startHour = 0
    | startMinute = 0
    | startMonth = 1
    | startYear = 1999
    | textSize = 16
    | timeMode = -1
    | yearLabel = java.lang.String@337786832 (0x142237d0)
    | years = java.util.ArrayList@346777120 (0x14ab6620)
    | cycleDisable = true
    | dividerConfig = cn.qqtheme.framework.widget.WheelView$DividerConfig@346777144 (0x14ab6638)
    | labelTextColor = -16611122
    | lineSpaceMultiplier = 2.0
    | offset = 3
    | textColorFocus = -16611122
    | textColorNormal = -4473925
    | textPadding = -1
    | textSize = 16
    | textSizeAutoFit = true
    | typeface = android.graphics.Typeface@1956256936 (0x749a1ca8)
    | useWeight = true
    | backgroundColor = -1
    | cancelButton = android.widget.TextView@346777184 (0x14ab6660)
    | cancelText = java.lang.String@343659576 (0x147bd438)
    | cancelTextColor = -13388315
    | cancelTextSize = 0
    | cancelVisible = true
    | centerView = android.widget.LinearLayout@346777984 (0x14ab6980)
    | contentLeftAndRightPadding = 0
    | contentTopAndBottomPadding = 0
    | footerView = null
    | headerView = null
    | pressedTextColor = -16611122
    | submitButton = android.widget.TextView@346778664 (0x14ab6c28)
    | submitText = java.lang.String@343659624 (0x147bd468)
    | submitTextColor = -13388315
    | submitTextSize = 0
    | titleText = java.lang.String@1892856544 (0x70d2b2e0)
    | titleTextColor = -16777216
    | titleTextSize = 0
    | titleView = android.widget.TextView@346779464 (0x14ab6f48)
    | topBackgroundColor = -1
    | topHeight = 40
    | topLineColor = -13388315
    | topLineHeightPixels = 1
    | topLineVisible = true
    | topPadding = 15
    | activity = com.anpxd.ewalker.activity.CarEntryFirstEditActivity@346780264 (0x14ab7268)
    | contentLayout = android.widget.FrameLayout@346780680 (0x14ab7408)
    | dialog = android.app.Dialog@346781328 (0x14ab7690)
    | isPrepared = true
    | screenHeightPixels = 1920
    | screenWidthPixels = 1080
    | shadow$klass = cn.qqtheme.framework.picker.DatePicker
    | shadow$monitor = 0

  • Instance of com.anpxd.ewalker.activity.CarEntryFirstEditActivity
    | static $change = null
    | static Type_Reject = java.lang.String@337750520 (0x1421a9f8)
    | static $$delegatedProperties = kotlin.reflect.KProperty[12]@343000776 (0x1471c6c8)
    | static serialVersionUID = 3189065138996316267
    | static Type_Car_Edit = java.lang.String@337835704 (0x1422f6b8)
    | static $classOverhead = byte[4552]@342415473 (0x1468d871)
    | static Type_Apply_In_Storage = java.lang.String@337818144 (0x1422b220)
    | static Companion = com.anpxd.ewalker.activity.CarEntryFirstEditActivity$Companion@343000840 (0x1471c708)
    | static Type_Car_Entry = java.lang.String@337750904 (0x1421ab78)
    | _$_findViewCache = java.util.HashMap@347083696 (0x14b013b0)
    | blackColor$delegate = kotlin.SynchronizedLazyImpl@347083736 (0x14b013d8)
    | bodyTypePicker$delegate = kotlin.SynchronizedLazyImpl@347083760 (0x14b013f0)
    | businessInsuranceListener = com.anpxd.ewalker.activity.CarEntryFirstEditActivity$businessInsuranceListener$1@347083784 (0x14b01408)
    | calendar = java.util.GregorianCalendar@347083800 (0x14b01418)
    | car = com.anpxd.ewalker.bean.car.Car@347083912 (0x14b01488)
    | carBaseParam = com.anpxd.ewalker.bean.CarBaseParam@347084248 (0x14b015d8)
    | carLog = null
    | editCar = null
    | explanationWatch = com.anpxd.ewalker.activity.CarEntryFirstEditActivity$explanationWatch$1@346831200 (0x14ac3960)
    | forceInsuranceListener = com.anpxd.ewalker.activity.CarEntryFirstEditActivity$forceInsuranceListener$1@347084288 (0x14b01600)
    | gearBoxPicker$delegate = kotlin.SynchronizedLazyImpl@347084304 (0x14b01610)
    | greyColor$delegate = kotlin.SynchronizedLazyImpl@347084328 (0x14b01628)
    | keyNumPicker$delegate = kotlin.SynchronizedLazyImpl@347084352 (0x14b01640)
    | licenseListener = com.anpxd.ewalker.activity.CarEntryFirstEditActivity$licenseListener$1@347084376 (0x14b01658)
    | licensePicker$delegate = kotlin.SynchronizedLazyImpl@347084392 (0x14b01668)
    | mBusinessInsurancePicker$delegate = kotlin.SynchronizedLazyImpl@347084416 (0x14b01680)
    | mForceInsurancePicker$delegate = kotlin.SynchronizedLazyImpl@347084440 (0x14b01698)
    | mLicensePicker$delegate = kotlin.SynchronizedLazyImpl@347084464 (0x14b016b0)
    | mTitle = java.lang.String@347045232 (0x14af7d70)
    | mType = java.lang.String@337835704 (0x1422f6b8)
    | mUnitPicker$delegate = kotlin.SynchronizedLazyImpl@347084488 (0x14b016c8)
    | mValidatePicker$delegate = kotlin.SynchronizedLazyImpl@347084512 (0x14b016e0)
    | mileageWatch = com.anpxd.ewalker.activity.CarEntryFirstEditActivity$mileageWatch$1@346797080 (0x14abb418)
    | redWatch = com.anpxd.ewalker.activity.CarEntryFirstEditActivity$redWatch$1@346838760 (0x14ac56e8)
    | retailPriceWatch = com.anpxd.ewalker.activity.CarEntryFirstEditActivity$retailPriceWatch$1@346916128 (0x14ad8520)
    | titleWatch = com.anpxd.ewalker.activity.CarEntryFirstEditActivity$titleWatch$1@346973544 (0x14ae6568)
    | transferWatch = com.anpxd.ewalker.activity.CarEntryFirstEditActivity$transferWatch$1@346865216 (0x14acbe40)
    | useNaturePicker$delegate = kotlin.SynchronizedLazyImpl@347084536 (0x14b016f8)
    | validateListener = com.anpxd.ewalker.activity.CarEntryFirstEditActivity$validateListener$1@347084560 (0x14b01710)
    | yellowWatch = com.anpxd.ewalker.activity.CarEntryFirstEditActivity$yellowWatch$1@346845952 (0x14ac7300)
    | _$_findViewCache = null
    | mBinder = com.lsxiao.apollo.core.entity.ApolloBinderImpl@347084576 (0x14b01720)
    | lifecycleSubject = io.reactivex.subjects.BehaviorSubject@347084592 (0x14b01730)
    | mDelegate = android.support.v7.app.AppCompatDelegateImplN@346786256 (0x14ab89d0)
    | mResources = null
    | mThemeId = 2131755015
    | mCreated = true
    | mFragments = android.support.v4.app.FragmentController@347084632 (0x14b01758)
    | mHandler = android.support.v4.app.FragmentActivity$1@347084648 (0x14b01768)
    | mLoaderManager = null
    | mNextCandidateRequestIndex = 0
    | mPendingFragmentActivityResults = android.support.v4.util.SparseArrayCompat@347084680 (0x14b01788)
    | mReallyStopped = true
    | mRequestedPermissionsFromFragment = false
    | mResumed = false
    | mRetaining = false
    | mStopped = true
    | mViewModelStore = null
    | mStartedActivityFromFragment = false
    | mStartedIntentSenderFromFragment = false
    | mExtraDataMap = android.support.v4.util.SimpleArrayMap@347084704 (0x14b017a0)
    | mLifecycleRegistry = android.arch.lifecycle.LifecycleRegistry@347084728 (0x14b017b8)
    | mActionBar = null
    | mActionModeTypeStarting = 0
    | mActivityInfo = android.content.pm.ActivityInfo@347050000 (0x14af9010)
    | mActivityTransitionState = android.app.ActivityTransitionState@347084760 (0x14b017d8)
    | mApplication = com.anpxd.ewalker.App@337711808 (0x142112c0)
    | mAutoFillResetNeeded = false
    | mAutofillManager = null
    | mAutofillPopupWindow = null
    | mCalled = true
    | mChangeCanvasToTranslucent = false
    | mChangingConfigurations = false
    | mComponent = android.content.ComponentName@347053808 (0x14af9ef0)
    | mConfigChangeFlags = 0
    | mCurrentConfig = android.content.res.Configuration@347084816 (0x14b01810)
    | mDecor = null
    | mDefaultKeyMode = 0
    | mDefaultKeySsb = null
    | mDestroyed = true
    | mDoReportFullyDrawn = false
    | mEmbeddedID = null
    | mEnableDefaultActionBarUp = false
    | mEnterTransitionListener = android.app.SharedElementCallback$1@1898640216 (0x712af358)
    | mExitTransitionListener = android.app.SharedElementCallback$1@1898640216 (0x712af358)
    | mFinished = true
    | mFragments = android.app.FragmentController@347084936 (0x14b01888)
    | mHandler = android.os.Handler@347084952 (0x14b01898)
    | mHasCurrentPermissionsRequest = false
    | mIdent = 36941545
    | mInstanceTracker = android.os.StrictMode$InstanceTracker@347084984 (0x14b018b8)
    | mInstrumentation = android.app.Instrumentation@342346744 (0x1467cbf8)
    | mIntent = android.content.Intent@347050176 (0x14af90c0)
    | mInterceptor = miui.contentcatcher.InterceptorProxy@347085000 (0x14b018c8)
    | mLastAutofillId = 1073741832
    | mLastNonConfigurationInstances = null
    | mMainThread = android.app.ActivityThread@337379552 (0x141c00e0)
    | mManagedCursors = java.util.ArrayList@347085016 (0x14b018d8)
    | mManagedDialogs = null
    | mMenuInflater = null
    | mParent = null
    | mReferrer = java.lang.String@347050368 (0x14af9180)
    | mResultCode = 0
    | mResultData = null
    | mResumed = false
    | mSearchEvent = null
    | mSearchManager = null
    | mStartedActivity = false
    | mStopped = true
    | mTaskDescription = android.app.ActivityManager$TaskDescription@347085040 (0x14b018f0)
    | mTemporaryPause = false
    | mTitle = java.lang.String@342347008 (0x1467cd00)
    | mTitleColor = 0
    | mTitleReady = true
    | mToken = android.os.BinderProxy@346784800 (0x14ab8420)
    | mTranslucentCallback = null
    | mUiThread = java.lang.Thread@1956104144 (0x7497c7d0)
    | mVisibleBehind = false
    | mVisibleFromClient = true
    | mVisibleFromServer = false
    | mVoiceInteractor = null
    | mWindow = com.android.internal.policy.MiuiPhoneWindow@346782000 (0x14ab7930)
    | mWindowAdded = true
    | mWindowManager = android.view.WindowManagerImpl@346781856 (0x14ab78a0)
    | mInflater = com.android.internal.policy.PhoneLayoutInflater@346784240 (0x14ab81f0)
    | mOverrideConfiguration = null
    | mResources = android.content.res.MiuiResources@346785112 (0x14ab8558)
    | mTheme = android.content.res.Resources$Theme@346785152 (0x14ab8580)
    | mThemeResource = 2131755015
    | mBase = android.app.ContextImpl@346781880 (0x14ab78b8)
    | shadow$klass = com.anpxd.ewalker.activity.CarEntryFirstEditActivity
    | shadow$monitor = 1073746892

  • Excluded Refs:
    | Field: android.view.textservice.SpellCheckerSession$1.this$0
    | Field: android.view.Choreographer$FrameDisplayEventReceiver.mMessageQueue (always)
    | Thread:FinalizerWatchdogDaemon (always)
    | Thread:main (always)
    | Thread:LeakCanary-Heap-Dump (always)
    | Class:java.lang.ref.WeakReference (always)
    | Class:java.lang.ref.SoftReference (always)
    | Class:java.lang.ref.PhantomReference (always)
    | Class:java.lang.ref.Finalizer (always)
    | Class:java.lang.ref.FinalizerReference (always)

@liyujiang-gzu liyujiang-gzu added the expired 已不适用于3.x之后的版本 label Dec 22, 2021
@Pannarrow
Copy link

请问这个问题有解决吗,我用了最新版本还是有这个现象

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
expired 已不适用于3.x之后的版本
Projects
None yet
Development

No branches or pull requests

3 participants