2011-08-23 10 views
9

Tengo dos paquetes en mi aplicación de Android. Cómo hablar de los diferentes paquetes junto con sus actividades en el archivo de manifiesto de Android? En mi código que he dado comocómo declarar dos paquetes con sus actividades en el archivo de manifiesto de 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> 

Pero me estoy excepción No se pudo encontrar la clase de actividad explícita .......... . ¿Dónde estaba equivocado? Por favor me ayude a ...........

Respuesta

16

Parece que ha cometido algunos errores en el código 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> 

Lo que sigue debería funcionar. Corrige estos 3 errores:

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

gracias por su response.But aquí TabbarView Actividad pertenece al paquete diferente. ¿Cómo colocar ese paquete en el archivo de manifiesto? Dijiste que solo puede haber una etiqueta de manifiesto en el archivo manifest.xml. –

+1

Utilicé '' con ese propósito. En mi archivo manifiesto, su aplicación se llamará "com.kpbird.tabbarcontrol", usará 'com.tabwidget. *' Mediante el uso de notaciones explícitas en las etiquetas 'activity' y usará' com.kpbird.tabbarcontrol. TabbarView' mediante el uso de una notación implícita. Es posible que desee invertir esto. En ese caso, use "com.tabwidget" como nombre del paquete, use notación implícita para las diversas actividades de Tabwidget y use notación explícita para TabbarView – Shlublu

0

puede hacer de esta manera. no se necesita ninguna para hacer cualquier inclusión explícita de paquete diferente

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

Cuestiones relacionadas