Refactoring package name breaks entire app

2019-04-04 04:07发布

I am trying to refactor my package using Eclipse

org.sheehan.activity

to

org.sheehan.stocks.activity

For some reason my project just blows up when I do this and R doesn't get regenerated. How can I refactor properly?

UPDATE: I updated my Android Manifest to reflect the change. R still doesn't get regenerated. Even after a clean. The compiler is complaining about org.sheehan.activity.R

7条回答
倾城 Initia
2楼-- · 2019-04-04 04:19

Fixing missing reference to R in eclipse:

  1. Refactor -> Rename`

  2. Build -> Clean

  3. Android Tools -> Fix Project Properties

查看更多
smile是对你的礼貌
3楼-- · 2019-04-04 04:21

For more advanced imports and refactors, literally closing the Eclipse IDE can refresh a cache that causes random errors like "End position lies outside document range" or the "what once worked now doesn't hair puller outter errors."

Signs you should close Eclipse when trying to rename things are:

  1. When you import a project, do some refactoring (like trying to change the package name), then delete the project and try again, you will see immediate R.java errors when you didn't before

  2. When you are importing projects that have manually generated R.java files that have custom imports like "com.ns.proj.R" and don't see the name update in Preview

  3. The box that asks if you want to "Rename subpackages" is checked unexpectedly

  4. the code in the "Preview>>" looks as if it's been complied before instead of black and white code with the proper names replaced

  5. you get XML errors in the manifest activity name like this

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

when it should be

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

There are too many to name obviously, however this is as important as "keep your eye on the ball" in sports. Something that is so easy to forget, yet things like these apply to other software programs like Dreamweaver (e.g. when you use the Dreamweaver "Put" option instead of FTP dragging with FileZilla and you notice your domain isn't updating your changes online). I called Adobe when I first started as a developer 8 years ago because I knew I wasn't doing anything wrong. They said sometimes the generated files to perform the action get corrupted...in other words, IDE's have bugs too!

In general, close the IDE before you off yourself...it could save your life!

查看更多
The star\"
4楼-- · 2019-04-04 04:24

If you renamed properly, all your references across your project should have gotten updated. After doing this, clean your project by going to Project > Clean. This should fix it.

查看更多
Luminary・发光体
5楼-- · 2019-04-04 04:26

I resolved by:

Android Tools > Rename Package Application
查看更多
The star\"
6楼-- · 2019-04-04 04:33

The package name doesn't update in the XML files. Specifically your manifest which needs to know the base package.

查看更多
孤傲高冷的网名
7楼-- · 2019-04-04 04:34

select the base package of your project in the eclipse package explorer, press F2 (Rename), in the rename dialog: SELECT ALL the checkboxes.: enter image description here

That should do it

查看更多
登录 后发表回答