2

最初のパッケージはcom.first.oneで、2番目のパッケージはcom.second.twoです。

どちらのパッケージも同じxmlファイルを使用しています。

私の問題は、最初のパッケージのコードは正常に機能しますが、2番目のパッケージは機能しないことです。

問題はmanifest.xmlにあるはずだと思います

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.first.one"
    android:versionCode="1"
    android:versionName="1.0" >

最初のパッケージcom.first.oneのみが使用され、2番目のパッケージは使用されないため。それが問題なら。マニフェストで両方のパッケージを宣言するにはどうすればよいですか?

これが問題ではない場合、2番目のパッケージのコードが機能しないのはなぜですか?

4

3 に答える 3

2

これは不可能です。代わりにimport com.first.one.R.*;、2番目のパッケージのクラスに追加して、最初のパッケージと同じリソースを使用できるようにすることができます。

于 2012-06-11T17:20:43.450 に答える
2

個別のパッケージを持つことの背後にある考え方は、セカンダリパッケージがアプリケーションを補完する必要があるということです。たとえば、WebサイトAPIを使用するアプリケーションを作成している場合、次をインポートすることで、そのパッケージ(com.websiteAPIなど)を保持し、必要に応じてそのリソースから取得できます。

import com.package_name_requested_here.R.*

もう1つの例は、com.objectsなどのグローバルオブジェクト専用のパッケージを作成することです。

これとは対照的に、独自のパッケージ(マニフェストで指定されているもの)には、アプリケーションに固有のすべてのファイルが含まれている必要があります。ただし、サブパッケージを含めるようにパッケージを設定できることを忘れないでください。たとえば、次のように作成した場合:

package="com.mystuff"

マニフェストで自分の活動を参照するには、次のように記述します。

<activity android:name=".first.one" </activity>
<activity android:name=".second.two" </activity>

お役に立てれば。^ _ ^

于 2012-06-11T18:12:05.910 に答える
2

2つのアプリが欲しいと思います。マニフェストでパッケージ名を変更できるビルドファイルを使用できます

目標

<target name="name1_2" depends="">
        <replaceregexp file="AndroidManifest.xml" match='com.first.one' replace='com.first.second' byline="true" />
    </target>

<target name="name2_1" depends="">
        <replaceregexp file="AndroidManifest.xml" match='com.first.second' replace='com.first.one' byline="true" />
    </target>
于 2015-02-10T13:38:23.797 に答える