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. ps智能对象

  2. 前端水印图片及文字js教程

    前端水印图片文字教程如下,复制代码修改图片地址即可看到效果,工作中遇到总结的,喜欢就关注下哦: <!DOCTYPE html><html> <head> <m ...

  3. overflow-x后覆盖滚动条

    可以看到,上面的导航是fixed定位,微信下载,这 部分也是fixed定位, 出现的原因初步判定是:给html与body加overflow-x:hidden:导致, 解决办法是,去掉html的over ...

  4. Mysql5.7动态修改innodb_buffer_pool_size

    SELECT @@innodb_buffer_pool_size,@@innodb_buffer_pool_chunk_size,@@innodb_buffer_pool_instances; SET ...

  5. C语言第三次博客作业---单层循环结构

    一.PTA实验作业 题目1 1.实验代码 int N,i; //N为用户数,i记录循环变量 double height; //height放身高 char sex; //sex放性别F为女,M为男 s ...

  6. [SDOI2010] 魔法猪学院

    Description 给定e和边权,求有多少条不同的道路能从1到n使得边权之和的和小于e Solution A*裸题 娘的要是SPFA再把dis写成to就剁手 // By YoungNeal #in ...

  7. MYSQL数据库学习十五 事务

    15.1 事务概述 当多个用户访问同一份数据,一个用户在更改数据的过程中可能有其他用户同时发起更改请求,为保证数据库记录的更新从一个一致性状态变为另一个一致性状态,使用事务处理是非常必要的. 事务有以 ...

  8. delete与delete[]的区别

    一直对C++中的delete和delete[]的区别不甚了解,今天遇到了,上网查了一下,得出了结论.做个备份,以免丢失. C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete ...

  9. C# Int 类型线程不安全

    之前统计报表算法做了一个优化,一个查询二十分钟导致客户端超时,优化到只需要5秒钟.后来发现for循环里数据合并的时候耗时,就用并行做优化.但是发现并行后丢居然数据(当然是因为List线程不安全). 前 ...

  10. 多线程&定时器Timer&同步&线程通信&ThreadLocal

    1.多线程 线程状态分为:新建状态.就绪状态.运行状态.阻塞状态.死亡状态 对象等待池的阻塞状态:运行状态执行了wait方法 对向锁池的阻塞状态:试图获得某个同步锁,已经被其他线程占用,就会放到对象的 ...