整个堆栈仅包括android核心代码:
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean androidx.fragment.app.FragmentManagerImpl.isDestroyed()' on a null object reference
at androidx.fragment.app.Fragment.performDetach(Fragment.java:2844)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1033)
at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1237)
at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:434)
at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManagerImpl.java:2075)
at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1865)
at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1820)
at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1726)
at androidx.fragment.app.FragmentManagerImpl$2.run(FragmentManagerImpl.java:150)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
它发生在替换主活动中的片段时:
Runnable mPendingRunnable = new Runnable() {
@Override
public void run() {
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.frame, fragment);
fragmentTransaction.commitAllowingStateLoss();
}
};
最后一天,我在这个问题上纠结不定,终于找到了解决办法。我用的是gradle
implementation 'androidx.constraintlayout:constraintlayout:1.1.2'
我用这个代码替换了我的片段。
getActivity().getSupportFragmentManager().beginTransaction().detach(new KiKorbo()).replace(R.id.calendar1, caldroidFragment).attach(caldroidFragment)
.addToBackStack(null).commit();
这里是KiKorbo。java是我的父片段,我替换了caldroidFragment。
在我的模块渐变中,我通过还原来修复它
implementation 'androidx.appcompat:appcompat:1.1.0-beta01'
到
implementation 'androidx.appcompat:appcompat:1.1.0-alpha05'
(上面关于childFragmentManager的回答没有帮助。)
我在myFragment中找到了一段代码。导致这种情况的附件:
这是一种解决方法,避免了在使用ViewPager选项卡时出现错误“Java.lang.IllegalStateException活动已被破坏”
try {
Field childFragmentManager = Fragment.class.getDeclaredField("mChildFragmentManager");
childFragmentManager.setAccessible(true);
childFragmentManager.set(this, null);
} catch (NoSuchFieldException e) {
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
现在,在androidx中,不需要这种变通方法。
问题内容: 我正在尝试创建一个简单的手电筒应用程序,以学习android开发。我正在尝试获取它,以便当您单击灯光ImageView对象时,它会更改图像。但是现在,当调试器进入light.setImageResource()时,它崩溃。 它抛出的错误是 问题答案: 崩溃: 正如您的堆栈跟踪所说:“ java.lang。OutOfMemoryError : 未能分配51840012字节分配,其中包含4
应用程序由于stacktrace的StackOverflow错误而不时崩溃(见下文)。 该错误意外地出现在各种方案中。我们无法模拟它或预测它的发生。 提前谢谢你。 Stacktrace错误(缩短版):
经过一些调试,我找到了这行代码 导致我的应用程序崩溃,我已经尝试过了 ; 但结果还是一样,有什么帮助吗??