在android studio中重命名包名称后发生错误,运行时错误

时间:2014-11-12 13:59:33

标签: java android android-studio r.java-file android-package-managers

我在android studio中有一个项目,

我首先将项目从eclipse导出到android studio。 之后 我在AndroidMenifest.xml,

中更改了其包名称

从Android Studio重命名目录,

更改所有my class files中的包名称,

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

gen文件夹就像com.oldpath.path1com.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.

请帮助我,我被困在我的项目中..

3 个答案:

答案 0 :(得分:9)

使用Android Studio 3.0.1,仅使用Refactor -> Rename...工具重构包名称是不够的。首先,如上所述,这会错过整个项目中的几个引用,包括在Manifest文件中。其次,这会丢失生成的文件和Android Studio缓存(导致OP识别的错误)。

对于遇到此问题的任何人,如果您尚未重命名自己的软件包,请按照以下步骤操作:Android Studio Rename Package

否则,如果您已经尝试过但失败了,那么以下步骤将挽救您的项目:

Android Studio中的解决方案

  1. 使用Ctrl+Shift+F查找并替换重构工具遗漏的旧包名称的任何引用。
  2. 修复代码中的所有剩余错误,然后使用Build -> Clean Project清理并重建您的应用程序。这将重新生成您的R文件,修复上一个相关的构建错误,但是会给出OP指出的启动错误。不幸的是,如果你仍然有构建错误,那么你就不会像OP那样面临同样的问题......
  3. 准备重新启动IDE(保存您的工作并关闭所有正在运行的模拟器)。
  4. 在Android Studio中,选择File -> Invalidate Caches / Restart...
  5. 就是这样! Android Studio将在重新启动时同步您的Gradle文件,从现在开始,它将在启动您的应用时引用您的新软件包名称。

答案 1 :(得分:3)

最好重命名包,以便右键单击包名称 - >重构 - >改名。所以android studio会自动重命名所有必须重命名的内容。

答案 2 :(得分:0)

您需要在重命名包之后清理项目,因为在重命名后它不会重建它。 选择Build -> Clean Project,然后再次运行 - 应该没问题