
overrIDe fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) val fm = childFragmentManager var prefsFragment: PrefsFragment? = fm.findFragmentByTag(tablename) as PrefsFragment? if (prefsFragment == null) { prefsFragment = PrefsFragment() val ft = fm.beginTransaction() ft.add(R.ID.parameters_fragment_container,prefsFragment,tablename) ft.commit() fm.executePendingTransactions() }} 我不得不说这是Java-> Kotlin自动翻译器对我以前的Java代码所做的事情(除了我在标签上找到PrefsFragment的行末尾的?),所以它可能不完全是犹太教.我正在学习Kotlin.
现在,当我调用executePendingTransactions()时,我的应用程序崩溃抛出java.lang.IllegalArgumentException,并显示错误消息“参数指定为非null为null:方法kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull,参数savedInstanceState”.现在,是的,savedInstanceState实际上是null,但它与显然抛出异常的调用有什么关系呢?我确保没有其他值/变量为空,所以我相信错误信息……但为什么呢?
编辑这是堆栈跟踪,以及让我做恶梦的源代码
https://gist.github.com/Morpheu5/8ec7e2064f53679405769b43c64f2cb7
E/AndroIDRuntime: FATAL EXCEPTION: main Process: net.morpheu5.bleedingscorecalculator,PID: 2685 java.lang.IllegalArgumentException: Parameter specifIEd as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull,parameter savedInstanceState at net.morpheu5.bleedingscorecalculator.CalculatorScreen$PrefsFragment.onCreatePreferences(CalculatorScreen.kt:0) at androID.support.v7.preference.PreferenceFragmentCompat.onCreate(PreferenceFragmentCompat.java:223) at androID.support.v4.app.Fragment.performCreate(Fragment.java:2075) at androID.support.v4.app.FragmentManagerImpl.movetoState(FragmentManager.java:1060) at androID.support.v4.app.BackStackRecord.setLastIn(BackStackRecord.java:838) at androID.support.v4.app.BackStackRecord.calculateFragments(BackStackRecord.java:861) at androID.support.v4.app.BackStackRecord.run(BackStackRecord.java:719) at androID.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1682) at androID.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:594) at net.morpheu5.bleedingscorecalculator.CalculatorScreen.onActivityCreated(CalculatorScreen.kt:34) at androID.support.v4.app.Fragment.performActivityCreated(Fragment.java:2096) at androID.support.v4.app.FragmentManagerImpl.movetoState(FragmentManager.java:1138) at androID.support.v4.app.FragmentManagerImpl.movetoState(FragmentManager.java:1295) at androID.support.v4.app.BackStackRecord.run(BackStackRecord.java:801) at androID.support.v4.app.FragmentManagerImpl.execSingleAction(FragmentManager.java:1643) at androID.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:679) at androID.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:143) at androID.support.v4.vIEw.VIEwPager.populate(VIEwPager.java:1272) at androID.support.v4.vIEw.VIEwPager.populate(VIEwPager.java:1120) at androID.support.v4.vIEw.VIEwPager.onMeasure(VIEwPager.java:1646) at androID.vIEw.VIEw.measure(VIEw.java:19857) at androID.vIEw.VIEwGroup.measureChilDWithmargins(VIEwGroup.java:6083) at androID.support.design.Widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:703) at androID.support.design.Widget.headerScrollingVIEwBehavior.onMeasureChild(headerScrollingVIEwBehavior.java:90) at androID.support.design.Widget.AppbarLayout$ScrollingVIEwBehavior.onMeasureChild(AppbarLayout.java:1367) at androID.support.design.Widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:768) at androID.vIEw.VIEw.measure(VIEw.java:19857) at androID.vIEw.VIEwGroup.measureChilDWithmargins(VIEwGroup.java:6083) at androID.Widget.FrameLayout.onMeasure(FrameLayout.java:185) at androID.support.v7.Widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:139) at androID.vIEw.VIEw.measure(VIEw.java:19857) at androID.vIEw.VIEwGroup.measureChilDWithmargins(VIEwGroup.java:6083) at androID.Widget.linearLayout.measureChildBeforeLayout(linearLayout.java:1464) at androID.Widget.linearLayout.measureVertical(linearLayout.java:758) at androID.Widget.linearLayout.onMeasure(linearLayout.java:640) at androID.vIEw.VIEw.measure(VIEw.java:19857) at androID.vIEw.VIEwGroup.measureChilDWithmargins(VIEwGroup.java:6083) at androID.Widget.FrameLayout.onMeasure(FrameLayout.java:185) at androID.vIEw.VIEw.measure(VIEw.java:19857) at androID.vIEw.VIEwGroup.measureChilDWithmargins(VIEwGroup.java:6083) at androID.Widget.linearLayout.measureChildBeforeLayout(linearLayout.java:1464) at androID.Widget.linearLayout.measureVertical(linearLayout.java:758) at androID.Widget.linearLayout.onMeasure(linearLayout.java:640) at androID.vIEw.VIEw.measure(VIEw.java:19857) at androID.vIEw.VIEwGroup.measureChilDWithmargins(VIEwGroup.java:6083) at androID.Widget.FrameLayout.onMeasure(FrameLayout.java:185) at com.androID.internal.policy.DecorVIEw.onMeasure(DecorVIEw.java:689) at androID.vIEw.VIEw.measure(VIEw.java:19857) at androID.vIEw.VIEwRootImpl.performMeasure(VIEwRootImpl.java:2275)E/AndroIDRuntime: at androID.vIEw.VIEwRootImpl.measureHIErarchy(VIEwRootImpl.java:1366) at androID.vIEw.VIEwRootImpl.performTraversals(VIEwRootImpl.java:1619) at androID.vIEw.VIEwRootImpl.doTraversal(VIEwRootImpl.java:1254) at androID.vIEw.VIEwRootImpl$TraversalRunnable.run(VIEwRootImpl.java:6337) at androID.vIEw.Choreographer$CallbackRecord.run(Choreographer.java:874) at androID.vIEw.Choreographer.doCallbacks(Choreographer.java:686) at androID.vIEw.Choreographer.doFrame(Choreographer.java:621) at androID.vIEw.Choreographer$FramedisplayEventReceiver.run(Choreographer.java:860) at androID.os.Handler.handleCallback(Handler.java:751) at androID.os.Handler.dispatchMessage(Handler.java:95) at androID.os.Looper.loop(Looper.java:154) at androID.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:776)解决方法 该异常实际上并非来自该代码.它来自您的CalculatorScreen.PrefsFragment.onCreatePreferences()方法.如果你看那里,看起来像 –
覆盖fun onCreatePreferences(savedInstanceState:Bundle,rootKey:String)
并且它应该是以下允许savedInstanceState为null –
覆盖fun onCreatePreferences(savedInstanceState:Bundle?,rootKey:String)
总结以上是内存溢出为你收集整理的android – FragmentManager在Kotlin中抛出IllegalArgumentException全部内容,希望文章能够帮你解决android – FragmentManager在Kotlin中抛出IllegalArgumentException所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)