无法启动另一个应用程序的另一个Activity

时间:2014-09-22 13:04:49

标签: android android-intent android-activity

我遇到了一个问题:我想从另一个应用程序启动一个Activity,为此我做了以下事情:

    public void startMyActivity(View view){
    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.setComponent(new ComponentName("com.package", "com.package.MyActivity"));
    startActivity(intent);
}

但我收到错误:无法找到显式活动com.package / com.package.MyActivity 。此外,我在清单文件中将MyActivity声明为活动,但我仍然得到相同的错误。我究竟做错了什么?谢谢!

应用程序A的清单文件(我想从中开始活动):

<?xml version="1.0" encoding="utf-8"?>

package="com.example.appA"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="15"
    android:targetSdkVersion="21" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" 
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

这是应用程序B的清单文件(包含应该启动的活动):

<?xml version="1.0" encoding="utf-8"?>

 package="com.mypackage.package.appB"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="16"
    android:targetSdkVersion="16" />


<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >

    <activity
        android:name="com.package.MyPackage"
        android:label="@string/title" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

1 个答案:

答案 0 :(得分:0)

好的,所以我找到了解决方案。这有点令人沮丧。所以..我尝试了所有人认为你们提出的建议(我很欣赏),但没有任何效果。所以我的想法引导我使用adb shell来查看我的应用程序B是如何命名的,我发现它不仅是com.package,而且它是com.mypackage.package(名称mypackage / pakcage是不相关,仅用于示例目的)。之后,我检查了应用程序B的清单,看到&#34;包&#34;属性具有值com.mypackage.package。再次感谢你!