Как объявить два пакета с их действиями в файле манифеста Android? - PullRequest
10 голосов
/ 23 августа 2011

У меня есть два пакета в моем приложении для 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 ]

17 голосов
/ 23 августа 2011

Кажется, вы сделали несколько ошибок в 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>

То, что следует, должно работать. Это исправляет эти 3 ошибки:

<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 голос
/ 26 августа 2013

вы можете сделать это так.вам не нужно делать какие-либо явные включения различных пакетов

<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>

...