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