找不到处理意图错误的活动

时间:2013-09-05 23:03:12

标签: java android android-intent

我很难过,我没有活动来处理意图,我检查了清单等。有人可以快速查看一下,看看我在这里做错了什么。

这是我的java类

'import com.one2.indoor.R;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;

import android.widget.ImageButton;

public class Menu extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    ImageButton tut1 = (ImageButton) findViewById(R.id.activitymain);
    tut1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            startActivity (new Intent("com.indoor.ActivityMain"));
        }
    });

        }'

这是我的ActivityMain类

'import com.one2.indoor.R;

import android.app.Activity;
import android.os.Bundle;

public class ActivityMain extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tutorial);
}

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();

}

}'

最后我的清单

'<activity
        android:name="com.indoor.Main"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.indoor.Menu"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="com.indoor.MENU" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.indoor.ActivityMain"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="com.indoor.ACTIVITYMAIN" />

            <category android:name="android.intent.category.DEFAULT" />

        </intent-filter>

        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.indoor.ActivityMain" />
    </activity>
</application>

</manifest>

我无法看到它,为什么我收到错误。非常感谢任何帮助

4 个答案:

答案 0 :(得分:0)

清单中活动的路径和startActivity可能不正确。它应该是com.one2.indoor.ActivityMain,或者指定为其包的任何内容。

或者,我认为您可以将.ActivityMain放在名称的清单中,它会自动计算出路径。

最后,尝试使用startActivity(new Intent(YourActivity.this,TargetActivity.class))

答案 1 :(得分:0)

就像synergy8说的那样,你应该接受他的答案,但你需要在新活动声明的android清单中有一个新的意图。

所以为了更清楚你应该看到你的清单有这样的抱歉我在一个移动智能手机上这样做

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

应该这样做,如果你看看在那里创建的第一个活动,你会看到它,只需复制并粘贴它,并在意图过滤器中改变.main和它在活动中的.mainactivity

基本上从我看到的和synergy所说的导入不存在的包的内容是什么? Com.indoor.activity,当你的包是com.one2.indoor.activity

答案 2 :(得分:0)

首先,操作字符串区分大小写。 "com.indoor.ActivityMain"不等于"com.indoor.ACTIVITYMAIN"

其次,您可能不希望这些额外的<intent-filter>元素。如果您希望第三方应用直接调用该活动(例如,您的<intent-filter> / MAIN活动),会在活动上加LAUNCHER。否则,摆脱<intent-filter>并使用Synergy807指出的Intent结构:startActivity(new Intent(this, ActivityMain.class))

答案 3 :(得分:0)

我想这将是com.one2.indoor.ActivityMain.Also确保名称应该与区分大小写完全相同。