Android:未找到活动异常

时间:2011-09-17 08:43:26

标签: android

我在android工作。我想制作TabHost和Tab小部件。这是我的清单: -

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.pericent"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
       <activity android:name=".HelloTabWidget" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar" >
          <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            </activity>
             <Acivity android:name=".AlbumsActivity" android:label="@string/app_name" />
        <activity android:name=".ArtistsActivity" android:label="@string/app_name" />

         <Acivity android:name=".SongsActivity" android:label="@string/app_name" />
    </application>
</manifest> 

这是我的HelloTabWidget.java 包com.pericent;

import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.util.Log;
import android.widget.TabHost;

public class HelloTabWidget extends TabActivity  {

    private String TAG="HelloTabWidget";

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Resources res = getResources(); // Resource object to get Drawables
        TabHost tabHost = getTabHost();  // The activity TabHost
        TabHost.TabSpec spec;  // Resusable TabSpec for each tab
        Intent intent1;  // Reusable Intent for each tab
        Intent intent2;
        Intent intent3;

        intent2 = new Intent().setClass(this, AlbumsActivity.class);
        Log.v(TAG,"---album activity is called---");
        spec = tabHost.newTabSpec("albums").setIndicator("Albums",res.getDrawable(R.drawable.ic_tab_albums)).setContent(intent2);
        tabHost.addTab(spec);

        // Create an Intent to launch an Activity for the tab (to be reused)
                intent1 = new Intent().setClass(this, ArtistsActivity.class);
        Log.v(TAG,"---artist activity is called---");
        // Initialize a TabSpec for each tab and add it to the TabHost
        spec = tabHost.newTabSpec("artists").setIndicator("Artists",res.getDrawable(R.drawable.ic_tab_artists)).setContent(intent1);
        tabHost.addTab(spec);

        // Do the same for the other tabs

     }

}

每当我运行此项目时,都会创建一个错误“无法启动活动ComponentInfo {com.pericent / com.pericent.HelloTabWidget}:android.content.ActivityNotFoundException:无法找到显式活动类{com.pericent /com.pericent.AlbumsActivity};您是否在AndroidManifest.xml中声明了此活动?

但是你看到我在清单文件中声明了这个类。请检查这一点,并帮助找出我所做的错误。 提前谢谢。

2 个答案:

答案 0 :(得分:3)

将此代码替换为清单文件,然后清除项目RUN

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.pericent"
          android:versionCode="1"
          android:versionName="1.0">
        <application android:icon="@drawable/icon" android:label="@string/app_name">
           <activity android:name=".HelloTabWidget" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar" >
              <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
                </activity>
                 <acivity android:name=".AlbumsActivity" android:label="@string/app_name" />
            <activity android:name=".ArtistsActivity" android:label="@string/app_name" />

             <acivity android:name=".SongsActivity" android:label="@string/app_name" />
        </application>
</manifest> 

我认为您的代码名称“Activity”无法识别,因此我将其设为“activity

答案 1 :(得分:1)

我认为问题与你的标签有关

<Acivity android:name=".AlbumsActivity" android:label="@string/app_name" />

从活动中删除上限使用小“a”