快速更换完整项目所有引用package属性值(包名)

2016-11-12 11:14 评论 0 条

摘要:

你可能会说,修改包名那么简单的时候,直接更换清单文件package属性值就OK了,还用你来说?但如果我说,在一个完整的项目项目结构中引入的是旧包名的文件,你上述的做法,首先自动生成新包名的R文件,同时删除旧包名的R文件,所有Activity,Service等已经引用了旧包名文件,全部都报错,那应该是不想看到的结果吧。同时Android Studio重构包名,无法做到像Eclipse一键完成。

如何快速更换Eclipse开发环境或Android Studio开发环境下项目包名?必须先了解Android Project包名结构,建议阅读一下《Android Studio如何快速更改目录结构和包名?

Eclipse更换包名详细步骤:

1.Eclipse开发环境,展开gen文件夹,看到当前Project自动生成的R文件

2.选中存放R文件的文件夹,按下快捷键F2

3.弹窗中输入新的包名:新包名(比如cn.teachcourse.recycle),点击确定

4.看到当前gen文件夹下自动生成了两个包名的R文件(不影响操作)

5.展开AndroidManifest.xml文件,同理更改package为:新包名(比如cn.teachcourse.recycle),这个时候gen文件夹下自动仅保留新包名的R文件(这点需要注意)

6.更改AndroidManifest.xml声明的Activity、Service、BroadcastReceiver或Provider等组件路径为相对路径,比如:旧包名.MainActivity,在上面提到的文件《Android Studio如何快速更改目录结构和包名?》介绍了Project Structure和Project Package之间的区别和使用。

7.更改AndroidManifest.xml集成的第三方认证为新包名下

Android Studio更换包名详细步骤:

介绍更换包名之前,先了解Application ID的概念。application ID被声明在build.gradle文件中,每一个Android app有着一个唯一的application ID类似于Java程序结构中的包名,这个ID是每一个就类似Eclipse开发环境下的包名,一旦发布同一版本app,application ID就无法修改。

使用Android Studio创建Project,默认项目的包名和application ID名称一样,手动修改的是AndroidManifest.xml文件package的属性值,同时注意Project的结构名称,推荐阅读TeachCourse的另一篇文章《Android Studio如何快速更改目录结构和包名?》

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     package="com.example.myapp"  
  4.     android:versionCode="1"  
  5.     android:versionName="1.0" >  

001-flatten-packages
Android Studio重构包名,无法做到像Eclipse一键完成,在“Show Options menu”菜单中切换项目结构为Flatten Packages,另外一种隐藏之间空包名,即Hide Empty Middle Packages,项目结构以并排形式展开。
002-stand-side-by-side
1.选中“cn”,Android Studio默认重命名快捷键:Shift+F6,修改为:com,点击“Refactor”,然后点击“Do Refactor”,完成第一级包名重构
003-do-refactor
2.选中“com.teachcourse”,同理执行第二级包名重构,最后执行第三级,知道所有包名重构完成。
004-rename-all
3.需要注意:如果第一次重构可能会弹出警告:Rename current或Rename all,选择重构全部,会重构清单文件,src存放类文件路径,存放R文件路径和所有引入R文件的类文件的包名。但不会重构application ID,应用第三方SDK,填写的不再是package属性值,而是application ID名,这一点特别要注意。

PS:在对完整的项目进行重构之前,请先按照上述步骤操作,确定无误后,再到项目中执行重构,避免失误造成不可挽回的错误。

当前文章价值1.14元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

你可能感兴趣的文章

来源:每日教程每日一例,深入学习实用技术教程,关注公众号TeachCourse
转载请注明出处: https://www.teachcourse.cn/2083.html ,谢谢支持!

资源分享

Android系统搜索框架实战:提示最近查询内容 Android系统搜索框架实战:提示
你或许理解错了Android系统权限管理的这两个概念 你或许理解错了Android系统权限
浅谈SortedList方法使用 浅谈SortedList方法使用
浅谈SimpleCursorAdapter 浅谈SimpleCursorAdapter