Fragment already added

Android  小知识  2022年4月15日 am8:08发布3年前 (2022)更新 城堡大人
120 0 0

前言

项目中会用Viewpager+Fragment来显示图片,先项目中测试ok,但是我单独拎出来做简单调试时出现:

java.lang.IllegalStateException: Fragment already added: PlayFragment

尴尬了,就我拎出来的demo代码片段有问题。

最后调试发现,是我测试数据的问题。

简单记录于此,以便提醒自己。

好记性不如烂笔头

正文

异常的部分日志:

AndroidRuntime( 6843): Shutting down VM
AndroidRuntime( 6843): FATAL EXCEPTION: main
AndroidRuntime( 6843): Process: com.biumall.image, PID: 6843
AndroidRuntime( 6843): java.lang.IllegalStateException: Fragment already added: PlayFragment{d00a1dd} (5d7297c6-1e8d-4006-b51a-6d371a996c1f id=0x7f080072)
AndroidRuntime( 6843):     at androidx.fragment.app.FragmentStore.addFragment(FragmentStore.java:91)
AndroidRuntime( 6843):     at androidx.fragment.app.FragmentManager.addFragment(FragmentManager.java:1713)
AndroidRuntime( 6843):     at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:415)
AndroidRuntime( 6843):     at androidx.fragment.app.FragmentManager.executeOps(FragmentManager.java:2404)
AndroidRuntime( 6843):     at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2162)
AndroidRuntime( 6843):     at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2100)
AndroidRuntime( 6843):     at androidx.fragment.app.FragmentManager.execSingleAction(FragmentManager.java:1971)
AndroidRuntime( 6843):     at androidx.fragment.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:311)
AndroidRuntime( 6843):     at androidx.fragment.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:274)
AndroidRuntime( 6843):     at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1244)
AndroidRuntime( 6843):     at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1092)
AndroidRuntime( 6843):     at androidx.viewpager.widget.ViewPager.onMeasure(ViewPager.java:1622)

原因分析

网上也有人记录原因,比如:

一般是因为fragment中有错误

我也测试过,直接吧我Fragment删除,使用简单的fragment替换,但依旧错误,因此我的不是上面的原因。

最后我打印ViewPagerAdapter所有日志:

Image_ViewPagerAdapter( 6843): getItem position : 0
Image_ViewPagerAdapter( 6843): getItem  mPlayFragment : PlayFragment{d00a1dd} (5d7297c6-1e8d-4006-b51a-6d371a996c1f)
Image_ViewPagerAdapter( 6843): getItem position : 1
Image_ViewPagerAdapter( 6843): getItem  mPlayFragment : PlayFragment{d00a1dd} (5d7297c6-1e8d-4006-b51a-6d371a996c1f id=0x7f080072)

发现,数据中0和1的PlayFragment对象竟然一样的!!!

查看插入图片的数据:

mImageList.add("/storage/udisk1/125la.png");
mImageList.add("/storage/udisk1/125la.png");
mImageList.add("/storage/udisk1/125la.png");
mImageList.add("/storage/udisk1/125la.png");

哎,为了偷懒,使用了重复数据,没想倒创建的PlayFragment以url为唯一的标志。

解决方式

把数据改成不同样的即可:

mImageList.add("/storage/udisk1/125la_1.jpg");
mImageList.add("/storage/udisk1/125la_2.jpg");
mImageList.add("/storage/udisk1/125la_3.jpg");
mImageList.add("/storage/udisk1/125la_4.jpg");
mImageList.add("/storage/udisk1/125la_5.jpg");
mImageList.add("/storage/udisk1/125la_6.jpg");

每个人出现的情况可能不一样,以上仅供参考。谢谢

参考文章

  1. viewpager+Fragment报错:Fragment already added: MsgOuChatFragment

 历史上的今天

  1. 2023: Android App启动时间检测(0条评论)
  2. 2020: 史铁生:故乡的胡同(0条评论)
版权声明 1、 本站名称: 笔友城堡
2、 本站网址: https://www.biumall.com/
3、 本站部分文章来源于网络,仅供学习与参考,如有侵权,请留言

暂无评论

暂无评论...

随机推荐

陆文夫:脚步声

照理不应该被自己的脚步声吓住,因为在少年时我就在黑暗无人的旷野间听到过此种脚步。那时我住在江边的一个水陆码头上,那里没有学校,只有二里路外的村庄上有一位塾师在那里授馆,我只能去那里读书。那位塾师要求学生们苦读,即使不头悬梁、锥刺股,却也要“闻鸡起舞”,所谓闻鸡起舞就是在鸡鸣时分赶到学塾里去读早书。农...

替换preg_replace

推荐使用 读书导航 极客导航 :125啦极客导航(http://www.biumall.com/jike.html)PHP版本升级后preg_replace过期了,虽然都可以用,为了安全考虑,PHP官方推荐使用preg_replace_callback替代。php手册(PHP 4 >= ...

Seekbar的setThumb使用记录

前言记录一下SeekBar代码设置setThumb的使用。正文xml中Seekbar的配置 <SeekBar android:id="@+id/seek_bar_1" android:layout_width="920dp...

音视频学习:AudioRecord录制PCM以及转换成WAV文件

前言本文在《音视频学习:AudioRecord的简单使用》基础上录制成PCM文件以及转换成WAV文件。正文在前一篇基础上,新增录制数据回调以及保存成PCM,最后把PCM文件添加WAV头文件转出WAV文件。PS: 部分文件前面有附上代码,这里就省略IRecordBufferListener...

林徽因:一片阳光

放了假,春初的日子松弛下来。将午未午时候的阳光,澄黄的一片,由窗棂横浸到室内,晶莹地四处射。我有点发怔,习惯地在沉寂中惊讶我的周围。我望着太阳那湛明的体质,像要辨别它那交织绚烂的色泽,追逐它那不着痕迹的流动。看它洁净地映到书桌上时,我感到桌面上平铺着一种恬静,一种精神上的豪兴,情趣上的闲逸;即或所谓...

舒婷:墙

我无法反抗墙只有反抗的愿望 我是什么?它是什么?很可能它是我渐渐老化的皮肤既感觉不到雨冷风寒也接受不了米兰的芬芳或者我只是株车前草装饰性地寄生在它的泥缝里我的偶然决定了它的必然 夜晚,墙活动起来伸出柔软的伪足挤压我勒索我要我适应各式各样的形状我...