我正在使用eclipse并且我创建了一个测试android项目,包含R.java
的“gen”文件夹中的包当前被称为com.something.test
(我以为我只是测试但是构建我的整个应用程序在它!)
加载应用时会引用此选项,手机有时会显示它,因此我需要重命名它。我通过点击重构尝试了这个,但它用旧名称再次重新生成它!
我可以重命名吗?
答案 0 :(得分:85)
右键单击您的项目,然后右键单击Android工具 - >重命名应用程序名称:
或者,如果您想手动执行此操作,请转到清单文件,更改程序包名称,然后进行项目清理。
答案 1 :(得分:20)
检查AndroidManifest.xml
,package
顶级元素上有<manifest>
个属性。这就是生成R.java
的地方,你应该小心地重命名它。
答案 2 :(得分:3)
对于那些尝试手动更改它的人来说,R.java文件链接的语句是正确的。如果您只是在清单中更改它,您将在引用资源的整个java文件中得到一长串“R无法解析”错误。要纠正这一点,您需要在每个文件中为R类添加导入。
因此,如果您的软件包最初为:“com.mycomp.myapp.android”并将其更改为“com.mynewcomp.myapp.android”,则需要进入每个java类文件并添加:
import com.mynewcomp.myapp.android.R;
如果您在项目上运行最初建议的重命名命令,则会自动为您完成。
答案 3 :(得分:2)
它被命名为您应用的根包。如果您将应用程序的root包更改为其他内容,则R.java现在将存在于该包中。
答案 4 :(得分:2)
要检查的另一件事是,您是否拥有包含xml命名空间的自定义视图。我花了一分钟才意识到我必须更改xmlns属性。
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:myxmlnamespace="http://schemas.android.com/apk/res/com.mynew.packagename"
...
答案 5 :(得分:2)
我知道这是一个老问题,但我现在需要它,也许其他人也需要它。 我使用的是Android Studio 2.1.1
为了让它发挥作用,我不得不改变:
这样就不需要在每个java类上导入 R 。
重要的是要记住,这不是通常的改变,不应该每次都这样做。
链接applicationId vs. package name解释了它们之间的区别以及不应更改它们的原因。
答案 6 :(得分:0)
我使用Right Click-&gt; Refactor和Android Manifest.XML逐个重构我的包。我的R文件仍然是基于旧的包名。
关闭并打开项目解决了这个问题,但我需要对我的所有java文件进行手动更改。