如何在android清单文件中声明两个包的活动?

时间:2011-08-23 11:29:01

标签: android android-manifest

我的Android应用程序中有两个包。如何在android清单文件中提及这些不同的包及其活动?在我的代码中我给出了

<manifest package="com.tabwidget">
    <application>
        <activity android:name=".com.tabwidget.Tab"></activity>
        <activity android:name=".com.tabwidget.TabHostProvider"></activity>
        <activity android:name=".com.tabwidget.TabView"></activity>
    </application>
</manifest>                  
<manifest package="com.kpbird.tabbarcontrol">
    <application>
        <activity android:name=".com.kpbird.tabbarcontrol.TabbarView"></activity>
    </application>
</manifest>

但我得到异常无法找到明确的活动类...........我错在哪里?请帮帮我............

2 个答案:

答案 0 :(得分:17)

您似乎在XML中犯了一些错误:

<manifest package="com.tabwidget">
    <application>

        1) BELOW: starting the names by "." means that
        you are implicitely extending the package prefix defined in the package 
        attribute of the manifest XML tag. 
        For example, if your package is "com.tabwidget", defining".MyActivity"
        will be interpreted as "com.tabwidget.MyActivity"
        By removing the first ".", you use an explicit notation instead:
        whatever your package is, "com.tabwidget.MyActivity" is interpreted
        as "com.tabwidget.MyActivity"
        <activity android:name=".com.tabwidget.Tab"></activity>
        <activity android:name=".com.tabwidget.TabHostProvider"></activity>
        <activity android:name=".com.tabwidget.TabView"></activity>
    </application>
</manifest>                  

2) BELOW: a manifest file should only contain one manifest XML tag:
<manifest package="com.kpbird.tabbarcontrol">
    <application>

        3) BELOW: same mistake as 1)
        <activity android:name=".com.kpbird.tabbarcontrol.TabbarView"></activity>
    </application>
</manifest>

以下内容应该有效。它解决了这三个错误:

<manifest package="com.kpbird.tabbarcontrol">
    <application>
        <activity android:name="com.tabwidget.Tab"></activity>
        <activity android:name="com.tabwidget.TabHostProvider"></activity>
        <activity android:name="com.tabwidget.TabView"></activity>
        <activity android:name=".TabbarView"></activity>
    </application>
</manifest>

答案 1 :(得分:1)

你可以这样做。你不需要明确包含不同的包

<manifest package="com.tabwidget">
<application>
    <activity android:name="com.tabwidget.Tab"></activity>
    <activity android:name="com.tabwidget.TabHostProvider"></activity>
    <activity android:name="com.tabwidget.TabView"></activity>
    <activity android:name="com.tabwidget.TabbarView"></activity>
</application>