第一个包是 com.first.one 和 第二个是 com.second.two
两个软件包都使用相同的xml文件..
我的问题是我的第一个包中的代码工作正常但第二个包没有..
我认为问题应该在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 而第二个包未使用。 如果这是问题。如何在清单中声明两个包?
如果这不是问题那么为什么第二个包中的代码不起作用?
答案 0 :(得分:2)
这是不可能的。相反,您可以将import com.first.one.R.*;
添加到第二个包中的类,以允许它们使用与第一个包相同的资源。
答案 1 :(得分:2)
具有单独包装的想法是二级包装应该补充您的应用程序。例如,如果您正在编写一个使用网站API的应用程序,您可以保留该包,例如com.websiteAPI,并根据需要通过导入来从其资源中提取:
import com.package_name_requested_here.R.*
另一个例子是专门为全局对象编写一个包,比如com.objects。
要对此进行对比,您自己的包(清单中指定的包)应包含特定于您的应用程序的所有文件。请记住,您可以设置包以包含子包。例如,如果你做了:
package="com.mystuff"
您可以通过以下方式在清单中引用您的活动:
<activity android:name=".first.one" </activity>
<activity android:name=".second.two" </activity>
希望这会有所帮助。 ^ _ ^
答案 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>