Java 膨胀类片段时出错:第10行xml

Java 膨胀类片段时出错:第10行xml,java,android,xml,fragment,slidingpanelayout,Java,Android,Xml,Fragment,Slidingpanelayout,我正在构建一个带有滑动窗格的应用程序,运行时遇到问题。我一直在吃FCs。我对android开发相当陌生 package com.anshikka.datagushalpha; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.widget.SlidingPaneLayout; import android.view.View; public

我正在构建一个带有滑动窗格的应用程序,运行时遇到问题。我一直在吃FCs。我对android开发相当陌生

package com.anshikka.datagushalpha;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.widget.SlidingPaneLayout;
import android.view.View;


public class MainActivity extends FragmentActivity {

SlidingPaneLayout pane;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    pane = (SlidingPaneLayout) findViewById(R.id.sp);
    pane.setPanelSlideListener(new PaneListener());

    if (!pane.isSlideable()) {
        getSupportFragmentManager().findFragmentById(R.id.leftpane).setHasOptionsMenu(false);
        getSupportFragmentManager().findFragmentById(R.id.rightpane).setHasOptionsMenu(true);
    }
}

public class PaneListener extends FragmentActivity implements SlidingPaneLayout.PanelSlideListener {
    public PaneListener()
    {}

    @Override
    public void onPanelClosed(View view) {
        System.out.println("Panel closed");

        getSupportFragmentManager().findFragmentById(R.id.leftpane);
        getSupportFragmentManager().findFragmentById(R.id.rightpane);
    }

    @Override
    public void onPanelOpened(View view) {
        System.out.println("Panel opened"); 
        getSupportFragmentManager().findFragmentById(R.id.leftpane).setHasOptionsMenu(true);
        getSupportFragmentManager().findFragmentById(R.id.rightpane).setHasOptionsMenu(false);
    }

    @Override
    public void onPanelSlide(View view, float arg1) {
        System.out.println("Panel sliding");
    }

}
}
这是我的XML文件

<?xml version="1.0" encoding="UTF-8"?>
<android.support.v4.widget.SlidingPaneLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent"
    android:id="@+id/sp">



<!-- Left side pane. (Master) -->
<fragment android:id="@+id/leftpane" android:name="com.anshikka.datagushalpha.MainActivity"
    android:layout_width="190dp" android:layout_height="match_parent"
    class:com.
    android:layout_gravity="left" />


<!-- Right side page. (Slave) -->
<fragment android:id="@+id/rightpane" android:name="com.anshikka.datagushalpha.MainActivity"
    android:layout_width="350dp" android:layout_height="match_parent"
    android:layout_gravity="right" android:layout_weight="1" />

</android.support.v4.widget.SlidingPaneLayout>

看起来您的XML布局文件格式不正确。只需删除带有
class:com.
的行,看看它是否成功

<fragment android:id="@+id/leftpane" android:name="com.anshikka.datagushalpha.MainActivity"
    android:layout_width="190dp" android:layout_height="match_parent"
    class:com. <===== THIS LINE IS UNNECESSARY
    android:layout_gravity="left" />

我解决了这个问题,将您正在解析的活动的全名添加到片段到清单中,包括com。路径,例如:

    <activity
        android:name="com.example.mainproject.PaneTest"

        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

com.ansikka.datagushalpha.main活动是一个片段还是一个活动(从名称上看是这样的)?不能将活动用作片段。活动包含片段。使用该名称属性,您试图告诉这两个片段它们是主活动。正如日志猫告诉您的,MainActivity不是片段,而是片段活动。您需要新的片段,您将无法在自身上调用MainActivity。还有那一类:com。?你把你打开的门关上了吗?我把它拿走了。但我仍然得到相同的FC错误。还有什么吗?我仔细查看了您的错误消息,发现
试图实例化一个不是片段的类com.ansikka.datagushalpha.main活动。对,你的主要活动是一个活动,而不是一个片段。您需要定义一个片段并从XML中引用它。
    <activity
        android:name="com.example.mainproject.PaneTest"

        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".PaneTest"

        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>