我已经从我的应用程序启动了一个新的应用程序,但获得了未找到活动的消息

时间:2012-02-25 06:36:55

标签: android

我想从我的应用程序启动另一个应用程序,但是当我执行下面的代码时,我收到“未找到活动”异常的消息

 final Intent i = new Intent();
i.setAction(Intent.ACTION_MAIN); //might not be necessary
i.setClassName("com.cardmagic.in", "com.cardmagic.in.CardMAinActivity");
startActivity(i);

所以请任何人都可以给我这个问题的解决方案。

提前致谢。

5 个答案:

答案 0 :(得分:0)

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setComponent(new ComponentName("com.package.address","com.package.address.MainActivity"));
startActivity(intent);

检查这个......

答案 1 :(得分:0)

检查清单中的已注册活动。

检查Intent过滤器中的com.cardmagic.in.CardMAinActivity

之后它肯定会运行

答案 2 :(得分:0)

在其他应用程序集中,意图过滤到您要启动的活动。

    <activity
        android:name=".YourActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <action android:name="android.intent.action.GET_CONTENT"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <data android:mimeType="my.mime.type/my.mime.type"/>
        </intent-filter>
    </activity>

要启动,请使用以下代码

Intent it = new Intent(Intent.ACTION_GET_CONTENT);
it.setType("my.mime.type/my.mime.type");
startActivity(it);

答案 3 :(得分:0)

使用以下代码...如果您收到ActivityNotFoundException表示包名称不正确或具有此包名称的应用程序不退出

 Intent mIntent = mContext.getPackageManager().getLaunchIntentForPackage("com.cardmagic.in.CardMAinActivity");
                if (mIntent != null) {
                  try {
                      mContext.startActivity(mIntent);
                  } catch (ActivityNotFoundException err) {
                        // do something
                    }
                } else {
                    // do something
                }

包名称应定义为

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.cardmagic.in.CardMAinActivity"

答案 4 :(得分:0)

小心你的情况 - CardMAinActivity真的应该是CardMainActivity吗?