为了账号安全,请及时绑定邮箱和手机立即绑定

inflateException:二进制XML文件行#8:错误膨胀类片段

inflateException:二进制XML文件行#8:错误膨胀类片段

Cats萌萌 2019-08-03 07:03:44
inflateException:二进制XML文件行#8:错误膨胀类片段我正在用NavigationDrawerE.DrawerLayout航行到不同的地方Fragments..当我打电话给Map_Fragment_Page应用程序崩溃,但不是第一次。它第一次显示Map正确,但在那之后,当我浏览不同的片段,并再次来到Map_Fragment_Page然后它就会崩溃,产生一个错误。android.view.InflateException: Binary XML file line #8: Error inflating class fragment我尝试了很多不同的解决方案Google但仍然得不到所需的解决方案。这个问题还没有解决。howtoreach.xml<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:app="http://schemas.android.com/apk/res-auto"     android:layout_width="match_parent"     android:layout_height="match_parent">     <fragment         android:id="@+id/howtoreach_map"         android:layout_width="match_parent"         android:layout_height="match_parent"         class="com.google.android.gms.maps.SupportMapFragment"/></RelativeLayout>
查看完整描述

3 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

所以如果它在第二次打开片段后崩溃。你所需要的就是这个

@Overridepublic void onDestroy() {
    super.onDestroy();
    getFragmentManager().beginTransaction().remove(mapfragmentnamehere).commit();}

如果使用支持片段,则进行所需的更改



查看完整回答
反对 回复 2019-08-04
?
Helenr

TA贡献1780条经验 获得超4个赞


我的经验是使用xml-tag添加的片段。

<fragment>...</fragment>.

这些片段通常是嵌套的,在父片段被销毁时不销毁。一旦你试图再次膨胀它们,你就会得到一个异常,它基本上会抱怨这个片段已经膨胀了。因此,一旦父片段被销毁,我就手动销毁我的嵌套片段。只需使用下面的片段,并调整它以满足您的需要。此代码驻留在父片段中,其父片段的嵌套片段作为xml-标记。

@Overridepublic void onDestroy() {
    super.onDestroy();
    final FragmentManager fragManager = this.getFragmentManager();
    final Fragment fragment = fragManager.findFragmentById(/*id of fragment*/);
    if(fragment!=null){
        fragManager.beginTransaction().remove(fragment).commit();
    }}

对于动态创建的片段,根本不存在任何问题。动态意思是:您没有使用任何片段xml标记。

希望这能帮上忙!好的程序!




查看完整回答
反对 回复 2019-08-04
  • 3 回答
  • 0 关注
  • 327 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信