从不同的包中访问R.java

我有一个应用程序分为子包,只是为了个人组织:

com.myname.myapp | `- com.myname.myapp.activities | `- com.myname.myapp.whatever | `- ... 

问题是生成的R.java位于com.myname.myapp ,因此当我从子包com.myname.myapp.activities类中键入R.id.something时,我得到R cannot be resolved to a variable (显然我猜)。

当我点击组织导入 (Ctrl + Shift + O)时,Eclipse修复了它在顶部添加import com.myname.myapp.R ,并且一切看起来都很完美。 但另一方面, Android文档指出:

Eclipse有时候喜欢在使用资源的文件的顶部添加一个导入的android.R语句,特别是当你要求eclipsesorting或者pipe理导入时。 这将导致你的制造破坏。 注意这些错误的导入语句并删除它们

知道一切正常,我该怎么办?

Solutions Collecting From Web of "从不同的包中访问R.java"

你可以导入任何你想要的R.file。

 import com.myname.myapp.R; 

或者在像这样的variables中使用

 com.myname.myapp.R.id.test 

R.java总是在清单文件中提到的位置(包)中创build。

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

对于任何其他位置或包,您必须从根位置导入R.java文件。

希望你了解这个问题。

事实上有这样的警告,R类有两个版本。 有一个通用的版本,作为android包(android.R)的一部分,并有一个项目特定的代表您的本地资源文件(com.myname.myapp.R)。 就像你在java标准库中的Date类的两个版本一样(java.util.Date&java.sql.Date)看到它们两个类,具有相同名称,由package指定。