从不同的包访问R.java

MM.*_*MM. 14 java eclipse sdk android

我的应用程序分为子包,仅供个人组织使用:

com.myname.myapp
 |
 `-  com.myname.myapp.activities
 |
 `-  com.myname.myapp.whatever
 |
 `-  ...
Run Code Online (Sandbox Code Playgroud)

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

当我点击整理导入(Ctrl + Shift + O)时,Eclipse修复它import com.myname.myapp.R在顶部添加,一切似乎都完美.但另一方面,Android文档说明了这一点:

Eclipse有时喜欢在使用资源的文件顶部添加导入android.R语句,尤其是当您要求eclipse对排序或以其他方式管理导入时.这会导致你的品牌破产.注意这些错误的import语句并删除它们

知道一切都很完美,我该怎么办?

Kak*_*key 24

您可以随意导入R.file.

import com.myname.myapp.R; 
Run Code Online (Sandbox Code Playgroud)

或者像这样使用变量

com.myname.myapp.R.id.test
Run Code Online (Sandbox Code Playgroud)


Din*_*rma 19

R.java始终在清单文件中提到的位置(包)中创建.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.myname.myapp"
      android:versionCode="1"
      android:versionName="1.0">
Run Code Online (Sandbox Code Playgroud)

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

希望你能理解这个问题.