Android ConstraintLayout删除后泄漏视图。还是我遗漏了什么?

Android ConstraintLayout删除后泄漏视图。还是我遗漏了什么?,android,memory-leaks,android-view,android-constraintlayout,leakcanary,Android,Memory Leaks,Android View,Android Constraintlayout,Leakcanary,我正在开发一个小型库,它可以动态(以编程方式)将视图添加到视图层次结构中。然后可以从父视图组中删除视图。我注意到,当我使用匹配父LayoutParams将视图添加到约束布局中,然后删除视图时,视图仍保留在内存中。FrameLayout或LinearLayout作为父视图组时不会发生这种情况。 我用泄漏金丝雀来探测泄漏。再现问题的代码(应在consraint布局作为根视图的片段中使用): private val views=mutableListOf() 趣味showDefaultView(){

我正在开发一个小型库,它可以动态(以编程方式)将视图添加到视图层次结构中。然后可以从父视图组中删除视图。我注意到,当我使用匹配父LayoutParams将视图添加到约束布局中,然后删除视图时,视图仍保留在内存中。FrameLayout或LinearLayout作为父视图组时不会发生这种情况。 我用泄漏金丝雀来探测泄漏。再现问题的代码(应在consraint布局作为根视图的片段中使用):

private val views=mutableListOf()
趣味showDefaultView(){
重复(5){
val testView=View(requireContext())
val params=ViewGroup.layoutparms(
ViewGroup.LayoutParams.MATCH_父级,
ViewGroup.LayoutParams.MATCH_父级
)
(作为视图组查看)。添加视图(testView,参数)
添加(testView)
}
}
乐趣隐藏错误视图(){
views.foreachinedexed{index,testView->
AppWatcher.objectWatcher.watch(testView,“带索引的testView#$index”)
(作为视图组查看)。移除视图(testView)
}
视图。清除()
}
所以,问题来了。这是已知的bug吗?还是我错过了什么?如果这是一个已知的错误,是否有任何解决方法


Upd:我对此进行了一些调查。似乎问题出在coContrainLayout类内部。删除视图时,稀疏数组mTempMapIdToWidget不会从自身删除小部件(什么是“小部件”?我不知道)。

请提供LeakCanary的泄漏跟踪,否则人们无法帮助您:)请提供LeakCanary的泄漏跟踪,否则人们无法帮助您:)
private val views = mutableListOf<View>()

    fun showDefaultView() {
        repeat(5) {
            val testView = View(requireContext())
            val params = ViewGroup.LayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.MATCH_PARENT
            )
            (view as ViewGroup).addView(testView, params)
            views.add(testView)
        }
    }

    fun hideDefaultViews() {
        views.forEachIndexed { index, testView ->
            AppWatcher.objectWatcher.watch(testView, "testView witn index#$index")
            (view as ViewGroup).removeView(testView)
        }
        views.clear()
    }