在Android Studio中重命名包名后,启动时出现错误,运行时错误。

11

我在Android Studio中有一个项目,

我首先从Eclipse导出该项目到Android Studio,

然后在AndroidMenifest.xml中更改了包名,

从Android Studio中重命名了目录,

在所有的类文件中更改了包名,

还更改了R.java文件的位置

gen文件夹,例如旧路径为com.oldpath.path1,新路径为com.newpath.path2

还需要在R.java文件和BuildConfig.java文件中做相同的修改。

现在会得到以下错误信息...

    Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.oldpath.path1/com.newpath.path2.main.SplashScreen }
Error type 3
Error: Activity class {com.oldpath.path1/com.newpath.path2.main.SplashScreen} does not exist.

请帮帮我,我在我的项目中卡住了。


我有同样的问题。你找到解决方案了吗? - user3651854
4个回答

31
使用Android Studio 3.0.1,仅使用“Refactor -> Rename...”工具重构包名称是不够的。首先,正如已指出的那样,这会忽略项目中的一些引用,包括在Manifest文件中。其次,这还会忽略生成的文件和Android Studio缓存(导致OP所识别的错误)。
对于任何遇到此问题的人,如果您尚未重命名包名称,请按照以下步骤执行:在Android Studio中重命名包 否则,如果您已经尝试过并且失败了,则以下步骤将拯救您的项目: 解决方案:Android Studio
  1. 使用Ctrl+Shift+F查找并替换重构工具错过的旧包名称的任何引用。
  2. 修复代码中任何剩余的错误,然后使用Build -> Clean Project清除并重新构建应用程序。这将重新生成您的R文件,修复最后一个相关的构建错误,但会给您带来OP所注意到的启动错误。不幸的是,如果您仍有构建错误,则您面临的问题与OP并不完全相同...
  3. 准备重新启动IDE(保存您的工作并关闭任何正在运行的模拟器)。
  4. 从Android Studio中,选择File -> Invalidate Caches / Restart...
这就是全部!重新启动时,Android Studio将同步您的Gradle文件,并且从此以后,在启动应用程序时将引用您的新包名称。

2
我尝试了除了“无效缓存”部分之外的所有方法。在执行该操作后,问题得到了解决。 - Jasbin Karki
对我很有效!! - Vikram Rayavarapu
也许可以添加第五步,我按照所有步骤操作后,发现还有一个问题:当我在项目中重命名包时,它不知何故也编辑了我的运行/调试配置。请确保“启动选项”部分下的“启动”未设置为“无”。通常情况下,应该是“默认活动”。 - datWooWoo

3
最好将包重命名,以便您右键单击包名称 -> 重构 -> 重命名。这样,Android Studio会自动重命名所有需要重命名的内容。

我已经这样做了,但项目没有重命名,就像你所说的那样。 - Dharmik
是的,如果您是从Android Studio创建项目,那么您的答案是100%正确的。但是我从Eclipse导出了该项目。因此,我遇到了问题。 - Dharmik

0

在重命名包后,您需要清理项目,因为由于某些原因,在重命名后它不会重新构建。选择 Build -> Clean Project 然后再次运行 - 就应该没问题了


2
我遇到了同样的问题,不幸的是清理并没有解决问题。 - Itai Spector

0

对于仍然在设备或模拟器上安装应用程序但无法启动的人,即使在无效缓存和执行其他操作后:

当我在项目中重命名包时,它还以某种方式编辑了我的运行/调试配置。确保启动选项部分下的启动未设置为。通常,这应该是默认活动


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