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. Python+ Selenium自动化登录腾讯QQ邮箱实例

    学习了Python语言一段时间后,在公司的项目里也使用到了python来写测试脚本,一些重复的操作都使用脚本来处理了.大大的提高工作效率,减少了一些手工重复的操作. 以下是使用unittest框架写的 ...

  2. 请详细描述(以硬盘启动)Linux系统从打开主机电源到进入登录界面整个过程的流程。

    1. 开机进行BIOS(BIOS(Basic Input / Output System)自检测系统外围硬件设备如CPU.内存.IO.显卡.鼠标键盘等.根据BIOS中设置的系统启动顺序搜索用于启动系统 ...

  3. LeNet-5识别MINIST数据集

    LeNet-5 LeNet于90年代被提出,鉴于当时的计算能力和内存容量,直到2010年才能真正的实施这样的大规模计算.LeNet-5是LeCun于1998年提出的深度神经网络结构,总共包含7层网络( ...

  4. c#多线程,进度条,实时给前台发送数据

    ///做了一个wpf多线程,在实际场景中利用多线程保证程序不会卡死,性能上有所提高 //启动线程处理                Thread thread1 = new Thread(Update ...

  5. Maven学习笔记一

    maven是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的. Maven好处 1.普通的传统项目,包含jar包,占用空间很大.而Maven项目不包含jar包,所以占用空 ...

  6. java————面向对象概念

    面向对象 OO:面向对象 OOP:面向对象编程 OOA:面向对象分析 OOD:面向对象设计 面向对象的特征 继承,封装,多态 什么是对象? 对象是存在的具体实体,具有明确定义的特征和行为. 万物皆对象 ...

  7. hackme.inndy.tw - pyyy - Writeup

    hackme.inndy.tw - pyyy - Writeup 0x01 反编译 1.第一次尝试的时候我直接在线反编译,部分结果如下. for (i, f) in enumerate(F): n = ...

  8. C语言程序设计(基础)最后一次作业-- 总结报告

    本次作业是本学期的最后一次作业,有始有终,本次作业回顾下本学期的第0次作业,回答下面几个问题. 注意:在回答问题时请不要简单的回答 "不是","是".请把这当成 ...

  9. Beta冲刺第七天

    一.昨天的困难 没有困难. 二.今天进度 1.林洋洋:MD图片上传,修复权限问题,修复本地存储判空问题,修复协作申请没有过滤问题. 2.黄腾达:添加文件链接和邀请链接复制功能,协作树界面优化. 3.张 ...

  10. 冲刺NO.12

    Alpha冲刺第十二天 站立式会议 项目进展 项目核心功能,如学生基本信息管理模块,学生信用信息模块,奖惩事务管理模块等等都已完成,测试工作大体结束. 问题困难 项目结束后对项目的阶段性总结缺乏一定的 ...