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

问题描述 投票:5回答:3

我在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.

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

java android android-studio r.java-file android-package-managers
3个回答
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...

而已! Android Studio将在重新启动时同步您的Gradle文件,从现在开始,它将在启动您的应用时引用您的新包名称。


3
投票

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.