重命名应用程序后R不存在

时间:2016-03-30 08:40:40

标签: android package rename

此问题之前已被问过,但出于某种原因,它永远不会得到完全回答。通常人们只是建议重建项目,这在我的情况下不起作用。我将com.example.my.package中的包重命名为com.my.new.package。发生了什么事情,它重构了一切然后说R无法找到。所有对资源的引用都来自我的旧包名。所以我看到的东西是:

findViewById(com.example.package.R.id.imageGallery);

我需要做的就是让这些资源说:

com.my.new.package.R.id.imageGallery。

我在哪里告诉Android Studio这样做?我还更改了清单顶部和gradle文件的名称。非常感谢。

2 个答案:

答案 0 :(得分:0)

更改软件包名称会有很多问题。

由于您是手动完成的,因此有两种选择。

  1. 在更改之前恢复为您的代码版本,然后使用Android Studio手动设置。
  2. 使用Android Studio Replace in Path功能。 Edit -> Find -> Replace in PathScope你的整个项目。将Text to find设置为旧包名称,将Replace with text设置为新包名称。点击Find并交叉手指。

答案 1 :(得分:0)

Knossos的方法看起来容易多了。希望你不需要交叉手指。如果将来有人遇到此问题,那么要做的主要事情是在清单中重构项目名称,即使您已经手动更改了它。如果你有像我这样的情况,这将自动重构几乎所有东西。然后,您必须添加“import your.NEW.project.R;”对于您的每个活动,只需将任何前导引用(例如“your.OLD.project.R.id.yourView”)删除到任何资源标识符,以使其显示为“R.id.yourView”。您可能还需要更新gradle项目ID。但我相信这也是自动重构的。它可能看起来势不可挡,但即使你手动操作也不会那么糟糕。