1. 重命名办法,网上很多见

2. 对于需要重新修改包名的级别的

a. 修改package 和 gradle 的包名,对应一致。

b. 修改R 所在包名,使用crtl+n修改R文件的路径

c. 手动首改manifest文件的报错信息,和相关的包名路径,activity建议使用局对路径

d. clean 和rebuild 项目,此时如果r的引用还在报错的话,可以全局替换的方法,替换旧的R为新的方法。

参考文档http://blog.csdn.net/qq_21445563/article/details/52057189

今天有个朋友问我,怎么用Android Studio改应用的包名。
他的情况是,项目是从eclipse那里导入到AS上面的,不知道为毛,原包名是com.xxx.yyy.activity,想改成com.aaa.bbb。
好吧,其实我也没在AS上改过包名,于是试着自己玩了下,过程有点坑,写篇博客总结一下。

用Android Studio自带的Refactor-Rename(重构-重命名)更改包名

当然,一开始想到的就是AS的重命名功能(快捷键shift+f6),
恩,挺好用,但是发现一次只能包路径的单一层次?嗯,什么鬼?

就是上图那样,每次只能改一层,也只能重命名一层。
而且最重要的是,无法更改层次结构,就是说原来包名是com.xxx.yyy,没法改成 com.xxx 或者 com.xxx.yyy.zzz。
如果目标包名跟原包名层次结构一样,那么可以无视下文了。AS的这个重命名功能就十分好使。
改完后顺便把gradle的applicationId改了就OK了。

另辟蹊径

如果只用AS的重命名功能,估计没法完成我朋友的需求了,毕竟要改层次。
看来只能手动改完清单文件的包名后,再一个个去改代码中R文件的包名。
感觉要疯,毕竟代码中,引用R文件的频率略高,一个一个改工作量太大。

想起试过在AS里面移动过xxx.Java,然后所有引用xxx类的文件也会更改相应导入包的路径。
于是就想着是不是可以从R文件入手,把R文件移动到新包上,利用AS强大的重构功能去自动更改其他文件引用R文件的路径。
发现的确可行。

下面简单归纳一下步骤:

  1. 更改AS项目结构的显示方式,如下图;

  2. 修改目标moduleAndroidManifest.xml中的package,还有build.gradle中的applicationId

  3. 定位R文件(这里用快捷键ctrl+n),在R文件所在的那些个目录(这个不知道怎么用文字描述,等下看图吧)中建立新包;

  4. 移动R文件到新包中,根据提示选择重构相关文件。

  5. AndroidManifest.xml中某些四大组件的name属性可能用了相对路径,这时会提示出错,重新改一下路径即可,最好改成绝对路径。

上面是没啥营养的文字说明,具体操作还是看动图吧。
注意移动R文件并Refactor其他文件的时候,AS会卡一阵,其实后面还有内容的。

就是这样,其实挺简单的。
注意到R文件其实在build文件夹里面,也就是说其实是自动生成的文件,
所以更改包名后,如果残留原包的文件夹,其实可以不用去管它,下次编译的时候会自动消失的。

最新文章

  1. debian下使用Sphinx异常“Could not import extension sphinx.builders.linkcheck (exception: cannot import name SSLError)”的解决
  2. Andrew N.G的机器学习公开课学习笔记(一):机器学习的动机与应用
  3. 【转载】linux tail命令的使用方法详解
  4. Jquery实现图片轮播源码
  5. webserver and application server
  6. SQL类型转换以及自动在前面补0满足10位工号标示法
  7. thinkphp pdo 重写问题
  8. 大数据测试之hadoop系统生态
  9. Ubuntu设置程序开机自启或者开机禁止加载
  10. Spring 简单使用IoC与DI——XML配置
  11. Java读取excel数据保存入库
  12. hibernate重要知识点总结
  13. 读取Excel的部分问题
  14. HTML5 template元素
  15. INDEX--从数据存放的角度看索引
  16. [django]JsonResponse序列化数据
  17. Foreda8上安装CMake2.8.1.2
  18. Python学习---JSON学习180130
  19. 06_Jedis完成MySQL的条件查询案例
  20. 【转载】poj 1276 Cash Machine 【凑钱数的问题】【枚举思路 或者 多重背包解决】

热门文章

  1. 自动安装L2tp的脚本
  2. python全栈开发-Day5 元组、字典
  3. xlsx导入成--json
  4. Eclipse设置新建jsp文件默认模板
  5. Object的方法
  6. python统计词频
  7. javaMail邮件发送功能(多收件人,多抄送人,多密送人,多附件)
  8. Android短信验证码倒计时
  9. windows+CMake+mingw 搭建c c++开发环境
  10. web服务器学习1---httpd-2.4.29源码手动编译安装