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

Android 如何指定R.java的包名与app包名不同,android,adt,r.java-file,Android,Adt,R.java File,我们的应用程序在AndroidManifest.xml中声明了包名为com.foo.app 出于某种特殊的原因,为了玩一些小把戏,我们想故意用package namecom.bar.resource指定生成的R.java的包名。并且不更改应用程序包名称(仍保留为com.foo.app) 例如,我的应用程序使用com.foo.app,我希望生成的R.java包名为com.bar.resource。在我的应用程序的源代码中,我将使用类似于com.bar.resource.id.btn_ok 我们知道

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

出于某种特殊的原因,为了玩一些小把戏,我们想故意用package namecom.bar.resource指定生成的R.java的包名。并且不更改应用程序包名称(仍保留为com.foo.app)


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

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

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



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

在包资源管理器中打开src文件夹,然后右键单击com.foo.resource,然后单击重构,然后重命名包名,所有相关条目也将被重命名。

如果使用Eclipse,请执行以下步骤更改包名

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

  • 我最近也运行了完全相同的问题,并找到了最好的解决方案,实际上有一个较小的子项目,我引用了我想要的包名

    我使用ADT,所以我有

    |父项目|

    ->|子项目|

    我使用ADT,子项目被标记为库项目,并被引用(在Android、Java构建路径和项目依赖项中),因此父项目获得对其中所有资源的引用,所以我可以给它任何我想要的包名

    我已经抛出了一个快速和肮脏的例子,这种设置


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

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

    您好,您误解了我的问题。我要求更改自动生成的R.java源代码。不是手动创建的资源包。请尝试重命名gen文件夹并删除以前的OneHank,但这太简单了,因为每次eclipse都会生成一个新的OneHank。我不想修改R.java代码,只需更改其包名。您可以通过取消选中Project menuCheck中的build automatically选项来停止自动生成新的R文件。谢谢您提供的信息,但我希望R.java有一个不同的包名,您认为R.java的不同包名是什么意思?例如,我的应用程序使用com.foo.app,我希望生成的R.java包名为com.bar.resource。在我的应用程序的源代码中,我将使用com.bar.resource.id.btn_ok等引用,因为我知道您不能重命名或更改R.java及其内容。(如果您试图更改内容,它将警告您,这是不可取的)