2011-08-23 1 views
9

두 개의 패키지이 내 안드로이드 응용 프로그램에 있습니다. 내 코드에서 나는안드로이드 매니페스트 파일에서 액티비티를 사용하여 두 개의 패키지를 선언하는 방법은 무엇입니까?

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

로 준하지만 명시 적 활동 클래스를 찾을 수 없습니다 예외를 얻고 어떻게 안드로이드 매니페스트 파일에서의 활동과 함께 그 다른 패키지를 언급하는? .......... 내가 틀렸어? 제발 도와주세요 ...........

답변

16

을 당신이 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 가지 실수를 수정합니다 :

+0

주셔서 감사합니다 response.But에 대해 서로 다른 패키지의 명시 적 포함 할 필요가 없습니다. 패키지를 매니페스트 파일에 저장하는 방법 manifest.xml 파일에는 하나의 매니페스트 태그 만있을 수 있습니다. –

+1

그 목적으로''을 사용했습니다. 내 매니페스트 파일에서 앱은 "com.kpbird.tabbarcontrol"이라고 불리우며,'activity' 태그에 명시 적 표기법을 사용하여'com.tabwidget. * '을 사용하고'com.kpbird.tabbarcontrol'을 사용합니다. TabbarView'에 암시 적 표기법을 사용합니다. 이것을 뒤집을 수 있습니다. 이 경우 "com.tabwidget"을 패키지 이름으로 사용하고 다양한 Tabwidget 활동에 암시 적 표기법을 사용하고 TabbarView에 명시적인 표기법을 사용하십시오 – Shlublu

0

이렇게 할 수 있습니다. 여기 TabbarView 활동이 다른 패키지에 속하는 더는

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

관련 문제