重构包名导致整个应用程序崩溃

14

我正在尝试使用Eclipse重构我的软件包。

org.sheehan.activity
org.sheehan.stocks.activity

由于某些原因,当我这样做时,我的项目会崩溃,而R文件没有重新生成。 我该如何适当地进行重构?

更新:我更新了我的Android清单以反映更改。即使进行了清理,R仍未重新生成。编译器报告org.sheehan.activity.R的问题。


你的问题让我在很多方面上“破坏”了Eclipse...直到我关闭Eclipse并重试后,你的答案才起作用。看看我的答案,会让你开怀大笑!我认为你真的帮了很多人。 - whyoz
7个回答

16

我解决了这个问题:

Android Tools > Rename Package Application

2
重构并没有完全成功,所以在修复了我的Android清单之后,我不得不这样做。有引号缺失。 - Cody
1
对于超级初学者,请确保在“项目资源管理器”中突出显示您的项目,右键单击,然后您将看到底部附近的“Android工具”。 - whyoz

2
如果您已经正确重命名,那么您项目中的所有引用都应该已经更新。在此之后,请执行 Project > Clean 清理您的项目。这样应该就可以解决问题了。

我尝试了 Project > Clean,但没有成功。 R 仍然指向旧的软件包。 - Sheehan Alam
你也可以删除R文件,以此强制重新生成吗? - citizen conn
问题就在这里,gen文件夹不再有R了。当我打开/关闭/清理项目时,没有任何反应。 - Sheehan Alam
如果您进行更改并保存,会发生什么?您的工作区设置是否自动构建/刷新?(Windows > 首选项 > 通用 > 工作区) - citizen conn

1
在Eclipse的包资源管理器中选择您项目的基本包,按下F2(重命名),在重命名对话框中:选中所有复选框。: enter image description here 这样就可以了。

1

在eclipse中修复缺失对R的引用:

  1. 重构 -> 重命名

  2. 构建 -> 清理

  3. Android工具 -> 修复项目属性


检查一下你的任何XML文件是否有错误,也许这可以帮助你。 - Shruti

0

在您的项目中右键单击,转到

Android Tools > Rename Package Application

有时候如果 Project > Clean 无法解决问题,那么就删除你的项目中的 /gen/bin 文件夹。

0
软件包名称在 XML 文件中没有更新。具体来说,需要在清单文件中知道基本软件包。

0
对于更高级的导入和重构,实际上关闭Eclipse IDE可以刷新一个导致随机错误的缓存,例如“结束位置超出文档范围”或“曾经工作现在不工作的错误”。
以下是一些提示,当您尝试重命名项目时应该关闭Eclipse:
1. 当您导入一个项目,进行一些重构(例如尝试更改包名),然后删除该项目并再次尝试时,您会发现之前没有的R.java错误。 2. 当您导入手动生成的具有自定义导入(如“com.ns.proj.R”)的R.java文件的项目,并且在预览中看不到名称更新。 3. 不期望选择“重命名子包”的复选框。 4. “Preview >>”中的代码看起来好像已经被编译过了,而不是用正确的名称替换的黑白代码。 5. 在清单活动名称中出现XML错误。
请注意,这些都是关闭Eclipse的迹象。

android:name="com.ns.proj.CustomCocom.ns.proj.CustomControlse="@android:style/Theme.Light.NoTitleBar"

应该是这样的

android:name="com.ns.proj.CustomControls" android:style="Theme.Light.NoTitleBar"

显然有太多要命名的了,然而这与体育中的“保持眼球在球上”一样重要。这是很容易被忘记的事情,但像Dreamweaver这样的其他软件程序也适用于这些东西(例如,当您使用Dreamweaver的“Put”选项而不是使用FileZilla进行FTP拖放时,您会注意到您的域名没有在线更新您的更改)。我在8年前开始作为开发人员时就打电话给Adobe,因为我知道我没有做错任何事情。他们说有时执行操作的生成文件会损坏...换句话说,IDE也有漏洞!

总的来说,在你自杀之前关闭IDE...这可能会挽救你的生命!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接