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文件夹里面,也就是说其实是自动生成的文件,
所以更改包名后,如果残留原包的文件夹,其实可以不用去管它,下次编译的时候会自动消失的。

android studio 何如修改报名的更多相关文章

  1. Android Studio -修改LogCat的颜色

    Android Studio -修改LogCat的颜色 author:Kang,Leo weibo:http://weibo.com/kangyi 效果图 设置 Preference->Edit ...

  2. Android Studio 中修改versionCode跟versionName

    在Android Studio 中修改versionCode 跟versionName最写了一个新版的软件准备发布到应用平台上,但是versionCode和versionName的值一直修改不成功,在 ...

  3. [osx] android studio下修改avd的hosts文件

    1. 启动avd 安装/启动avd就不说啦,可以直接在android studio里面操作的 2. 进入adb目录 当然是打开终端来敲命令啦. cd /Users/birdylee/Library/A ...

  4. Android Studio 中修改Apk名称

    修改生成的apk名称,并且使调试时也可以使用. 在app->build.gradle 中增加以下内容: android.applicationVariants.all { variant-> ...

  5. android studio 版本修改无效解决方案

    我们都知道android的版本声明,是在AndroidManifest.xml文件里面的.例如 <manifest xmlns:android="http://schemas.andr ...

  6. android studio应用修改到android源码中作为内置应用

    1. 方法一:导入,编译(太麻烦,各种不兼容问题) android studio和eclipse的应用结构目录是不同的,但是在android源码中的应用基本上都是使用的eclipse目录结构(在/pa ...

  7. 我的Android进阶之旅------>Android studio 如何修改工程的包名

    关于用Android Studio修改Android APP的应用包名的问题,今天遇到了一个坑,这里记录一下. 这里用一个简单的Demo来展示在Android Studio中如何修改Android P ...

  8. Android Studio 完美修改应用包名

    我们平时新建项目有些朋友可能当时就是随意写的一个包名,然后在项目过程中, 又感觉这个包名不太好,所以就要对包名进行修改,根据我们正常的修改方式,是这样的. 在种情况是只能修改最外层的那个名称, 如果我 ...

  9. Android studio怎么修改文件名

    选中需要重新命名的文件 点击Android studio菜单中列表中的Refactor的选项 选择下拉菜单中的“rename”的选项 弹出rename的选项框,在输入框中输入需要重新的命名的名称. 点 ...

随机推荐

  1. ubuntu上修改root密码

    ubuntu上修改root密码 author: headsen chen    2017-10-12  10:49:28 个人原创,转载请注明作者,出处. sudo  passwd 两次输入想设置的r ...

  2. 有关Redis的Add和Set方法的比较

    测试发现,如果key已经存在,则调用Redis.Add(key, value)则不能添加或修改此key的内容value: 这样的话,我们在添加一个key和value的时候,不得不判断一次Contain ...

  3. iOS移动端直连数据库

    一个可以直接连接服务器MySQL的工具包(极不安全,如非特殊需求,不推荐使用) 这种直接连接服务器数据的方式是极为不安全的,但因为我们这个项目特殊情况,只在局域网内使用, 且只有一个pad对一台设备进 ...

  4. Beta冲刺 第三天

    Beta冲刺 第三天 1. 昨天的困难 昨天的困难主要集中在对Ajax的使用上,不熟悉这种语法,所以也就浪费了时间,导致昨天的批量删除没有完全完成. 2. 今天解决的进度 潘伟靖: 1.完善了昨天没写 ...

  5. C语言-最后一次作业

    1.当初你是如何做出选择计算机专业的决定的? 经过一个学期,你的看法改变了么,为什么? 你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗? 为什么? 我当初选择计算机专业是因为我是真的很向往计算机这方 ...

  6. Beta敏捷冲刺每日报告——Day1

    1.情况简述 Beta阶段Scrum Meeting 敏捷开发起止时间 2017.11.2 00:00 -- 2017.11.3 00:00 讨论时间地点 2017.11.2 晚9:30,电话会议会议 ...

  7. 从0开始的LeetCode生活—9. Palindrome Number(回文数)

    题目大意: 判断输入的数字是不是回文数.所谓回文数就是正反读都一样的数字,比如说11,121,1221这样子的数字.负数不会是回文数. 解题思路: 思路一:如果这个数是负数,则返回false,否则用一 ...

  8. 项目Alpha冲刺Day12

    一.会议照片 二.项目进展 1.今日安排 修复全局的日期转换问题,完成用户所有相关的模块,对全局的异常处理做优化.其他模块进行一部分实现. 2.问题困难 全局异常处理后发现没有进行按照链进行下去,造成 ...

  9. nyoj 概率计算

    概率计算 时间限制:1000 ms  |  内存限制:65535 KB 难度:1   描述 A和B两个人参加一场答题比赛.比赛的过程大概是A和B两个人轮流答题,A先答.一旦某人没有正确回答问题,则对手 ...

  10. JavaSE阶段初期的一些问题

    ​​​对于如下问题1:编译阶段Demo1会报错,Demo2不会报错. class Demo1{ int i; i = 0; } class Demo2{ int i = 0; } 事实上,在java中 ...