【发布时间】:2011-07-29 22:27:34
【问题描述】:
情况: 我需要将多个应用程序组合成一个 .apk 应用程序。假设将 app2 实现到 app1 中
我做了什么: 将 app2 包复制到我正在工作的主 app1 项目中,所以我的 app1 有两个包。
app2 有这个清单文件:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.package.app2" android:versionCode="3" android:versionName="1.2">
<application android:label="App2" android:icon="@drawable/icon">
<activity android:name="Activity1" android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="Activity2" android:excludeFromRecents="true"></activity>
</application>
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
<uses-permission android:name="android.permission.VIBRATE"></uses-permission>
</manifest>
我原来的 App1 清单文件:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.package.app1">
<application android:icon="@drawable/icon" android:debuggable="true">
<activity android:name=".Start" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.package.app1.PlayerList" />
<activity android:name="com.package.app1.CreateNewPlayer" />
<activity android:name="com.package.app1.Profile" />
<activity android:name="com.package.app1.Braintrainer" />
</application>
</manifest>
app1 中的代码我用来调用 app2 包中的活动:
Intent i = new Intent();
i.setClassName("com.package.app1", "com.package.app2.Activity1");
startActivity(i);
问题: 如何修改我的 app1 清单文件以包含 app2 的活动。
我尝试过的事情: 如果我在 app2 中创建简单的 HelloWorld 测试类,使用相同的代码调用并将其包含在 app1 清单中,它就可以工作:
<activity android:name="com.package.app2.Test" />
但我不知道如何将 app2 清单文件实现到第一个文件中。我尝试的每一种方法都不会出错,但在调用该活动时会崩溃。 App2 单独工作正常,所以问题不在活动文件中。
感谢您对此的任何想法。
【问题讨论】:
标签: android android-activity android-intent package manifest