Java &引用;“未找到活动”;在Android中

Java &引用;“未找到活动”;在Android中,java,android,android-fragments,activitynotfoundexception,Java,Android,Android Fragments,Activitynotfoundexception,我正在使用eclipse中的导航抽屉模板来做一个简单的Android应用程序。 我在碎片方面有些问题。 我在manifest中声明了一个名为PresenceLog fragment的片段,但当我在MainActivity中调用它时,日志仍然显示 03-23 13:54:50.817: E/AndroidRuntime(16750): android.content.ActivityNotFoundException: Unable to find explicit activity class

我正在使用eclipse中的
导航抽屉
模板来做一个简单的Android应用程序。
我在碎片方面有些问题。
我在manifest中声明了一个名为PresenceLog fragment的片段,但当我在
MainActivity
中调用它时,日志仍然显示

03-23 13:54:50.817: E/AndroidRuntime(16750): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.singtel.ricecooker/com.singtel.ricecooker.PresenceLogFragment}; have you declared this activity in your AndroidManifest.xml?
这是我的舱单

这是我的片段类

public class PresenceLogFragment extends Fragment{
private TextView myText = null;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    return inflater.inflate(R.layout.presence_log, null);
}

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    ArrayList<String> userList = null;
    RiceServerRequest newRequest = new RiceServerRequest();
    //newRequest.getRequestInfo(this);

}

public void updateUserList(ArrayList<String> userList){
    LinearLayout lView = (LinearLayout) getView().findViewById (R.layout.presence_log);
    //LinearLayout ll = (LinearLayout)fragment.getView().findViewById(R.id.commentFragmentLayout);

    for (int i = 0; i < userList.size();i++){
        myText = new TextView(getActivity());
        myText.setText(userList.get(i));
        lView.addView(myText);
    }
    //setContentView(lView);
}
如果你知道我的代码有什么问题,那就太好了。另外,由于我是Android编程新手,如果您能推荐一些在线课程,我将不胜感激

查看您的清单,看看您是否有一个

很清楚

“您是否在AndroidManifest.xml中声明了此活动?”

你应该检查是否有标签


或者

您创建了一个片段,因此不能将其称为活动。 您需要用片段替换容器视图、框架布局

getSupportFragmentManager()
  .beginTransaction()
  .replace(R.id.content_frame, new PresenceLogFragment())
  .commit();

请打开清单文件并声明如下:

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

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

如果这是您的lauch活动,则执行此操作,否则执行此操作

<activity
        android:name=".MainActivity"//your activity name
        android:label="@string/app_name" >
    </activity>


键入扩展活动而不是片段的java文件名。表示从该活动java文件创建的片段。

不能通过Intent加载片段。您必须通过以下方式使用片段管理器执行此操作:

 <activity
        android:name="com.singtel.ricecooker.PresenceLogFragment"
        android:label="@string/app_name" >
    </activity>
Fragment fragment = new PresenceLogFragment(MainActivity.this);
FragmentManager fragmentManager = getFragmentManager();
            FragmentTransaction ft = fragmentManager.beginTransaction();                
            ft.replace(R.id.yourFragmentContainer, fragment).commit();

您正在尝试将片段用作活动。 您可以将PresenceLogFragment重命名为PresenceLogActivity,并让它扩展Activity而不是Fragment,也可以尝试将您的片段用作片段

此外,您尝试在应用程序中使用的任何活动都需要在清单()中声明


关于片段以及如何使用它们的更多信息

您尚未在清单文件中添加活动课程:@ashutiwari4他正在尝试使用意图作为活动启动片段。这是完全错误的,请参阅@LittleChild谢谢您的推荐,谢谢it@EpicPandaForce是的,我才意识到。我想将以前编写的活动更改为片段,但忘记更改此部分。另外,您知道片段的setContentView的等价物是什么吗(我想在从服务器请求信息时更新页面)?
 <activity
        android:name="com.singtel.ricecooker.PresenceLogFragment"
        android:label="@string/app_name" >
    </activity>
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.content_frame, new PresenceLogFragment())
.commit();
Fragment fragment = new PresenceLogFragment(MainActivity.this);
FragmentManager fragmentManager = getFragmentManager();
            FragmentTransaction ft = fragmentManager.beginTransaction();                
            ft.replace(R.id.yourFragmentContainer, fragment).commit();