2011-08-23 5 views
9

Mam dwa pakiety w mojej aplikacji na Androida. Jak wymienić te różne pakiety wraz z ich działalnością w android pliku manifestu? W moim kodu dałem jakojak zadeklarować dwa pakiety z ich działaniami w pliku manifestu 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> 

Ale jestem coraz wyjątek stanie znaleźć wyraźny klasę aktywności .......... Gdzie byłem zły? Proszę mi pomóc ...........

Odpowiedz

16

Wydaje dokonaniu kilku błędów w 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> 

Co za tym idzie powinno działać. Naprawia te 3 błędy:

<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

dzięki za response.But tutaj TabbarView aktywny należy do innego opakowania. Jak umieścić ten pakiet w pliku manifestu? Powiedziałeś, że w pliku manifest.xml może znajdować się tylko jeden tag manifestu. –

+1

Użyłem '' w tym celu. W moim pliku manifestu twoja aplikacja będzie się nazywać "com.kpbird.tabbarcontrol", użyje 'com.tabwidget. *' Poprzez użycie notatek jawnych w znacznikach 'activity' i użyje' com.kpbird.tabbarcontrol. TabbarView' przy użyciu niejawnej notacji. Możesz to odwrócić. W takim przypadku użyj "com.tabwidget" jako nazwy pakietu, użyj notacji niejawnej dla różnych działań Tabwidget i używaj notacji jawnej dla TabbarView – Shlublu

0

możesz to zrobić. nie trzeba robić żadnych wyraźne włączenie innego opakowania

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

Powiązane problemy