繁体   English   中英

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

[英]No Activity found to handle intent errors

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

这是我的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>

我只是看不到它,为什么会出现错误。 任何帮助,不胜感激

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

另外,我认为您可以将.ActivityMain放在名称的清单中,它将自动找出路径。

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

就像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>

这样做应该是可行的,如果您查看在那里创建的第一个活动,您将看到它,只需将其复制并粘贴并在intent过滤器中更改.main,并将其更改为活动中的.mainactivity

从我所看到的基本上以及什么协同作用来看,您正在导入一个不存在的软件包? 软件包为com.one2.door.activity时的Com.indoor.activity

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

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

我想它将是com.one2.indoor.ActivityMain。还要确保名称应完全相同,因为它们区分大小写。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM