
该应用程序加载并查看显示地图的EventFragment.java.当您单击另一个选项卡片段时,它会正常加载,当您返回到第一个选项卡(地图)时,它会崩溃并出现以下错误:
07-03 14:13:54.640: E/AndroIDRuntime(11565): FATAL EXCEPTION: main07-03 14:13:54.640: E/AndroIDRuntime(11565): androID.vIEw.InflateException: Binary XML file line #5: Error inflating class fragment07-03 14:13:54.640: E/AndroIDRuntime(11565): at androID.vIEw.LayoutInflater.createVIEwFromTag(LayoutInflater.java:587)07-03 14:13:54.640: E/AndroIDRuntime(11565): at androID.vIEw.LayoutInflater.rInflate(LayoutInflater.java:623)07-03 14:13:54.640: E/AndroIDRuntime(11565): at androID.vIEw.LayoutInflater.inflate(LayoutInflater.java:408)07-03 14:13:54.640: E/AndroIDRuntime(11565): at androID.vIEw.LayoutInflater.inflate(LayoutInflater.java:320)07-03 14:13:54.640: E/AndroIDRuntime(11565): at co.uk.thesomewhere.townpearlfest.EventFragment.onCreateVIEw(EventFragment.java:48)07-03 14:13:54.640: E/AndroIDRuntime(11565): at androID.support.v4.app.Fragment.performCreateVIEw(Fragment.java:1460)07-03 14:13:54.640: E/AndroIDRuntime(11565): at androID.support.v4.app.FragmentManagerImpl.movetoState(FragmentManager.java:911)07-03 14:13:54.640: E/AndroIDRuntime(11565): at androID.support.v4.app.FragmentManagerImpl.attachFragment(FragmentManager.java:1264)07-03 14:13:54.640: E/AndroIDRuntime(11565): at androID.support.v4.app.BackStackRecord.run(BackStackRecord.java:672)07-03 14:13:54.640: E/AndroIDRuntime(11565): at androID.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444)07-03 14:13:54.640: E/AndroIDRuntime(11565): at androID.support.v4.app.FragmentManagerImpl.run(FragmentManager.java:429)07-03 14:13:54.640: E/AndroIDRuntime(11565): at androID.os.Handler.handleCallback(Handler.java:587)07-03 14:13:54.640: E/AndroIDRuntime(11565): at androID.os.Handler.dispatchMessage(Handler.java:92)07-03 14:13:54.640: E/AndroIDRuntime(11565): at androID.os.Looper.loop(Looper.java:143)07-03 14:13:54.640: E/AndroIDRuntime(11565): at androID.app.ActivityThread.main(ActivityThread.java:4196)07-03 14:13:54.640: E/AndroIDRuntime(11565): at java.lang.reflect.Method.invokeNative(Native Method)07-03 14:13:54.640: E/AndroIDRuntime(11565): at java.lang.reflect.Method.invoke(Method.java:507)07-03 14:13:54.640: E/AndroIDRuntime(11565): at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)07-03 14:13:54.640: E/AndroIDRuntime(11565): at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:597)07-03 14:13:54.640: E/AndroIDRuntime(11565): at dalvik.system.NativeStart.main(Native Method)07-03 14:13:54.640: E/AndroIDRuntime(11565): Caused by: java.lang.IllegalArgumentException: Binary XML file line #5: Duplicate ID 0x7f05000b, tag null, or parent ID 0x0 with another fragment for com.Google.androID.gms.maps.SupportMapFragment07-03 14:13:54.640: E/AndroIDRuntime(11565): at androID.support.v4.app.FragmentActivity.onCreateVIEw(FragmentActivity.java:285)07-03 14:13:54.640: E/AndroIDRuntime(11565): at androID.vIEw.LayoutInflater.createVIEwFromTag(LayoutInflater.java:563)07-03 14:13:54.640: E/AndroIDRuntime(11565): ... 19 more07-03 14:13:56.280: I/Process(11565): Sending signal. PID: 11565 SIG: 9所以读它说的是XML文件行5.这是XML文件:
<FrameLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" > <fragment androID:ID="@+ID/the_map" androID:name="com.Google.androID.gms.maps.SupportMapFragment" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" /> <button androID:ID="@+ID/btn_filerVIEw" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:paddingleft="10dp" androID:paddingtop="10dp" androID:drawableRight="@drawable/magglasswhite" androID:background="@androID:color/transparent" androID:onClick="filterVIEw" /></FrameLayout>这恰好是<片段所以..错误是片段是啊?我真的不知道发生了什么事.任何想法为什么会抛出错误?
解决方法:
我今天一整天都在和同样的问题作斗争.我让我的工作更早.这就是我所做的:当更改显示的片段时,我首先删除旧的mapFragment,然后执行我在添加新片段时通常所做的 *** 作.
Fragment oldMapFrag = getSupportFragmentManager().findFragmentByID(R.ID.map);if(oldMapFrag != null) { getSupportFragmentManager().beginTransaction().remove(oldMapFrag).commit(); manager.popBackStack(); VIEwGroup container = (VIEwGroup)findVIEwByID(R.ID.content); if(container != null) container.removeAllVIEws();}当我想再次查看mapFragment时,我删除了之前的片段,然后再次使用mapFragment为视图充气:
Fragment currentFrag = getSupportFragmentManager().findFragmentByID(R.ID.content);if(currentFrag != null) { getSupportFragmentManager().beginTransaction().remove(currentFrag).commit(); manager.popBackStack();}VIEw mapVIEw = inflator.inflate(R.layout.store_finder, container, true);我不知道为什么getSupportFragmentManager().beginTransaction().remove(oldMapFrag).commit();在第一步中工作是因为您不能删除XML中定义的片段,但这对我有用.我希望它有所帮助.
总结以上是内存溢出为你收集整理的java – 当膨胀以前膨胀的应用程序崩溃的片段时全部内容,希望文章能够帮你解决java – 当膨胀以前膨胀的应用程序崩溃的片段时所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)