0

我试图做一个菜单来控制片段 - 屏幕。 (就像Instagram的),当试图显示一些片段时,应用程序崩溃

但它崩溃:

主要活动的代码:

而且logcat的:

09-29 19:14:11.765: E/ActivityThread(26360): Failed to inflate 
09-29 19:14:11.765: E/ActivityThread(26360): android.view.InflateException: Binary XML file line #255: Error inflating class fragment 
09-29 19:14:11.765: E/ActivityThread(26360): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
09-29 19:14:11.765: E/ActivityThread(26360): at com.example.free.Add.onCreateView(Add.java:143) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:807) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1013) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1112) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.app.Activity.onCreateView(Activity.java:4664) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
09-29 19:14:11.765: E/ActivityThread(26360): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:275) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.app.Activity.setContentView(Activity.java:1867) 
09-29 19:14:11.765: E/ActivityThread(26360): at com.example.free.All.onCreate(All.java:26) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.app.Activity.performCreate(Activity.java:5008) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2139) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2210) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.app.ActivityThread.access$600(ActivityThread.java:142) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1208) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.os.Handler.dispatchMessage(Handler.java:99) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.os.Looper.loop(Looper.java:137) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.app.ActivityThread.main(ActivityThread.java:4931) 
09-29 19:14:11.765: E/ActivityThread(26360): at java.lang.reflect.Method.invokeNative(Native Method) 
09-29 19:14:11.765: E/ActivityThread(26360): at java.lang.reflect.Method.invoke(Method.java:511) 
09-29 19:14:11.765: E/ActivityThread(26360): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791) 
09-29 19:14:11.765: E/ActivityThread(26360): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558) 
09-29 19:14:11.765: E/ActivityThread(26360): at dalvik.system.NativeStart.main(Native Method) 
09-29 19:14:11.765: E/ActivityThread(26360): Caused by: java.lang.IllegalArgumentException: Binary XML file line #255: Duplicate id 0x7f07001d, tag null, or parent id 0xffffffff with another fragment for com.google.android.gms.maps.MapFragment 
09-29 19:14:11.765: E/ActivityThread(26360): at android.app.Activity.onCreateView(Activity.java:4669) 
09-29 19:14:11.765: E/ActivityThread(26360): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680) 
09-29 19:14:11.765: E/ActivityThread(26360): ... 32 more 
09-29 19:14:12.480: D/AndroidRuntime(26360): Shutting down VM 
09-29 19:14:12.480: W/dalvikvm(26360): threadid=1: thread exiting with uncaught exception (group=0x40ed5300) 
09-29 19:14:12.519: E/AndroidRuntime(26360): FATAL EXCEPTION: main 
09-29 19:14:12.519: E/AndroidRuntime(26360): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.free/com.example.free.All}: android.view.InflateException: Binary XML file line #255: Error inflating class fragment 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2185) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2210) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.ActivityThread.access$600(ActivityThread.java:142) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1208) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.os.Handler.dispatchMessage(Handler.java:99) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.os.Looper.loop(Looper.java:137) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.ActivityThread.main(ActivityThread.java:4931) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at java.lang.reflect.Method.invokeNative(Native Method) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at java.lang.reflect.Method.invoke(Method.java:511) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at dalvik.system.NativeStart.main(Native Method) 
09-29 19:14:12.519: E/AndroidRuntime(26360): Caused by: android.view.InflateException: Binary XML file line #255: Error inflating class fragment 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at com.example.free.Add.onCreateView(Add.java:143) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:807) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1013) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1112) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.Activity.onCreateView(Activity.java:4664) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:275) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.Activity.setContentView(Activity.java:1867) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at com.example.free.All.onCreate(All.java:26) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.Activity.performCreate(Activity.java:5008) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2139) 
09-29 19:14:12.519: E/AndroidRuntime(26360): ... 11 more 
09-29 19:14:12.519: E/AndroidRuntime(26360): Caused by: java.lang.IllegalArgumentException: Binary XML file line #255: Duplicate id 0x7f07001d, tag null, or parent id 0xffffffff with another fragment for com.google.android.gms.maps.MapFragment 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.app.Activity.onCreateView(Activity.java:4669) 
09-29 19:14:12.519: E/AndroidRuntime(26360): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680) 
09-29 19:14:12.519: E/AndroidRuntime(26360): ... 32 more 

线143上的 “添加” :

@Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
       Bundle savedInstanceState) { 
      return inflater.inflate(R.layout.activity_add, container, false); 
     } 

是t这里有什么不对吗?

布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".All" 
    android:orientation="vertical" > 

    <fragment 
     android:id="@+id/MapFragment" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     class="com.example.free.MainActivity" 
     android:layout_marginBottom="40dp"> 

    </fragment> 

    <fragment 
     android:id="@+id/AddFragment" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     class="com.example.free.Add" 
     android:layout_marginBottom="40dp"> 

    </fragment> 

    <Button 
     android:id="@+id/add" 
     android:layout_width="wrap_content" 
     android:layout_height="40dp" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:layout_toRightOf="@+id/imageView1" 
     android:text="Add" /> 

    <Button 
     android:id="@+id/map" 
     android:layout_width="wrap_content" 
     android:layout_height="40dp" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:layout_toLeftOf="@+id/imageView1" 
     android:text="Map" /> 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="40dp" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:src="@drawable/divider" /> 

</RelativeLayout> 

感谢您的帮助!

编辑

现在我正在这样做:

Fragment MapFragment = getSupportFragmentManager().findFragmentById(R.id.MapFragment); 
+0

发布活动布局和片段布局。 – Luksprog

+0

@Luksprog活动布局非常长,但我添加了片段布局。够了吗? – NirPes

回答

1

必须使用的,而不是活动FragmentActivity(如果您正在使用支持库)。

AddFragment =(View)findViewById(R.id.AddFragment);

这是错误的。阅读这篇文章,如何使用片段:http://developer.android.com/reference/android/app/Fragment.html

顺便说一下,您不能将片段投射到视图。

+0

我应该把它扔到什么地方?我将我的活动更改为FragmentActivity。 – NirPes

+0

使用方法findFragmentById()。看看我发布的链接。 – Vladimir

+0

我已经做到了。看看我编辑的帖子。现在我需要在碎片之间切换,并在需要时将它们中的每一个都放在前面。我怎样才能做到这一点? – NirPes

相关问题