如何指定R.java的包名称与app包名称不同

时间:2013-12-11 08:20:29

标签: android adt r.java-file

我们的应用程序在AndroidManifest.xml中将声明的包名称设为 com.foo.app

出于某些特殊原因,我们想要有意识地指定生成的R.java的包名,包名为 com.bar.resource 。并且不更改应用程序包名称(仍保留为com.foo.app)。

例如,我的应用程序使用com.foo.app,我希望生成的R.java的包名是com.bar.resource。在我的应用程序的源代码中,我将使用像com.bar.resource.id.btn_ok

这样的引用

我们知道不应该触及R.java的内容。当然,我们可以手动更改它并构建最终的应用程序,因为它只是一个带常量的静态类。

但ADT / Eclipse中是否有任何可配置选项可以为Android项目执行此操作?


请停止告诉我如何通过Eclipse重构方法更改包名称。请正确理解我的问题。我问如何指定自动生成的R.java 的包名称。我希望它与AndroidManifest.xml中指定的应用程序包名称 不同

4 个答案:

答案 0 :(得分:1)

打开包浏览器中的src文件夹,然后右键单击com.foo.resource,然后单击重构,然后重命名包名称,所有相关条目也将重命名。

答案 1 :(得分:1)

我最近自己运行了同样的问题并找到了最好的解决方案,实际上有一个较小的子项目,我用我想要的软件包名称引用它。

我使用ADT,所以我有

|父项目|

- > |子项目|

我使用ADT并将子项目标记为库项目,并引用(在Android,Java Build Path和Project Dependencies中),以便父项目获取对那里所有资源的引用,所以我可以给它是我想要的包装名称。

我已经在https://github.com/SixMinute/AndroidSeparatePackageResources上抛出了这个设置的快速而肮脏的例子。

这不是一个绝对完美的设置,但对我们来说绝对是最好和最简单的,希望它可以帮助你。

答案 2 :(得分:0)

如果您使用的是Eclipse,请执行以下步骤来更改软件包名称,

  1. 右键单击包名称。
  2. 选择重构>重命名
  3. 打开清单文件。在标记内,更改包名称..
  4. 在相关类中更改包时导入包。

答案 3 :(得分:0)

R.java包名称取决于您在清单文件中定义的包名称。