从不同的包中访问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理导入时。 这将导致你的制造破坏。 注意这些错误的导入语句并删除它们

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

  • 取消Google Drive上传可能吗?
  • Google云端硬盘的Android API?
  • 无法启动活动ComponentInfo {...}:java.lang.NullPointerException
  • 如何将file upload到Google云端硬盘
  • Android Api 24找不到源代码
  • 安装ADT插件时出现'必需项目无法find'错误
  • 无法解析符号NameValuePair
  • Android SDK位置
  • 你可以导入任何你想要的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指定。