重命名R.java生成的包
我正在使用eclipse,并创build了一个testingandroid项目,包含R.java
的“gen”文件夹中的软件包目前被称为com.something.test
(我以为我只是testing,但是在它上面构build了我的整个应用程序!)
这是在加载应用程序时引用的,手机有时显示它,所以我需要重命名它。 我通过点击重构来尝试这个,但是用旧的名字重新生成了它!
我可以重命名吗?
右键单击您的项目,然后selectAndroid工具 – >重命名应用程序名称:
或者,如果您想手动执行此操作,请转至您的清单文件,更改软件包名称并进行项目清理。
检查AndroidManifest.xml
,在<manifest>
顶级元素上有一个package
属性。 这是R.java
生成的地方,你应该小心地重命名它。
对于那些试图手动更改的人来说,R.java文件链接的语句是正确的。 如果只是在清单中更改它,那么在引用资源的所有java文件中,都会得到一长串“R无法parsing”的错误。 为了解决这个问题,你需要为每个文件中的R类添加一个导入。
所以,如果你的包最初是这样的:“com.mycomp.myapp.android”,并将其更改为“com.mynewcomp.myapp.android”,则需要进入每个java类文件并添加:
import com.mynewcomp.myapp.android.R;
如果您在项目上运行最初build议的重命名命令,则会自动完成。
它被命名为您的应用程序的根包。 如果您将您的应用程序的根包更改为其他内容,则R.java现在将存在于该包中。
另一件要检查的是,如果你有自定义视图与XML命名空间。 我花了一分钟才意识到我不得不改变xmlns属性。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:myxmlnamespace="http://schemas.android.com/apk/res/com.mynew.packagename" ...
我知道这是一个古老的问题,但我现在需要它,也许别人也需要它。 我正在使用Android Studio 2.1.1
为了使它工作,我不得不改变:
- 包 – 在AndroidManifest.xml
- applicationId – 在app文件夹的build.gradle上
这样就没有必要在每个java类上导入R.
重要的是要记住,这不是一个普遍的变化,不应该每次都做。
链接applicationId与软件包名称解释了它们之间的差别以及为什么不应该改变它们。
我使用右键单击 – >重构和Android Manifest.XML重构我的包一个一个。 我的R文件仍然build立在旧的软件包名称上。
closures和打开项目解决了这个问题,但我需要去做所有我的Java文件手动更改。