扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
平时项目开发中,有时候维护项目多,有的项目结构需要改变,这就需要我们去修改项目名称或者修改包名。下面介绍一下怎样修改项目名称和包名。
创新互联公司从2013年开始,是专业互联网技术服务公司,拥有项目做网站、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元襄城做网站,已为上家服务,为襄城各地企业和个人服务,联系电话:18982081108
1)打开项目根目录下的 setting.gradle 文件,修改该文件中的 rootProject.name='新项目名' ;
2)点击 Sync Now 重新编译项目;
★ 如果只是简单修改至此,会发现项目名称后依然备注着旧项目名,并没有彻底更换新的项目名。紧接着下面操作:
3)关闭 Android Studio;
4)修改项目所在路径的文件名为新的项目名;
5)打开AS,重新导入修改后的项目即可;
★ 如果是 AS 4.0之后 的版本,修改至此就算修改完成;如果是 AS 4.0之前 的版本,会出现一些配置文件信息还是引用原来的项目名,并没有更换为新的项目名。紧接着下面操作:
6)找到项目根目录下的 xx.iml 文件,右键 Refactor —— Rename 打开修改编辑框;
7)输入新的项目名,点击 Refactor 修改;
8)打开项目根目录下的 xx.iml 文件,修改该文件中的 project.id 字段: external.linked.project.id="新项目名"
9)打开项目下 .idea/modules.xml 文件,修改该文件中的 fileurl 和 filepath 字段: module fileurl="新项目名.iml" filepath="$PROJECT_DIR$/新项目名.iml" /
10)点击 Rebuild Project 重构项目,即可修改完成项目名称。
1)选中项目中药修改的包名;
2)更改项目结构显示方式,取消 Compact Middle Packages 选项;
3)右键要修改的包名,选择 Refactor —— Rename 打开修改编辑框;
4)点击 Rename package 修改包名;
5)输入新的包名,点击 Refactor 修改;
6)点击 Do Refactor 确定修改;
7)打开项目 app/main 目录下的 AndroidManifest.xml 文件,修改该文件中的 package="新包名" 字段;
8)修改项目 app 下的 build.gradle 中的 applicationId "新包名" 字段;
9)点击 Sync Now 同步,即可修改完成项目包名。
注意:
修改完包名,项目出现错误无法运行,解决方法请移步 —— 《Android Studio修改包名导致引用R文件报错问题》
对于修改包名,一般有两种情况:
1)一个是包名目录结构不变,比如说,将包名“com.zlc.xuexi”,改成"com.xuexi.zlc"
2)另一个是包名目录结构改变了,目录级数改变了,比如说,从"com.xuexi.zlc",改变成"com.xuexi.zlc.zlc",这里包名的目录结构就从3级改变成为了4级
下面分别来讲解一下这两种情况
针对第一种情况,其实特别好改,步骤截图如下:
切换的Progject结构,查看java包名结构,一般是这样的
点击show options menu按钮
去掉勾上的 Hide Empty Middle Packages 和 Show Members
java包的展示目录结构就改变了
对于包名目录结构不改变的。就分别改各个层次对应的包名或者直接按快捷键 Shift + F6
同理,假如是3级目录结构包名,每一个都要改变的话,就按照上图的做法一个个更改
接着,去改app模块下的build.gradle文件
然后去修改AndroidManifest.xml文件
最后,点击sync同步一下就大功告成了
针对第二种情况,步骤截图如下:
点击show options menu按钮
去掉勾上的 Hide Empty Middle Packages 和 Show Members
java包的展示目录结构就改变了
对于包名目录结构不改变的。就分别改各个层次对应的包名或者直接按快捷键 Shift + F6
假如是3级目录结构包名,改成4级包名目录机构,首先要新建包然后去移动其他的目录包
新建好多一级的目录包之后,需要移动启动文件夹到该目录包下
接着,去改app模块下的build.gradle文件
然后去修改AndroidManifest.xml文件
最后,点击sync同步一下就大功告成了
如果项目上用了DataBinding框架,特别是第二种情况,恭喜你,你肯能有得忙了。项目上有DataBinding框架的时候,当你按照上面的步骤修改了包名,就会报一个这样的错
遇到这个情况,肯定是修改包名或者移动了包名结构,但是布局文件或者java文件的的dataBinding的引用没有改变
这里我没找到特别快速修改的方法,放在我是一个个去检查java文件的导包和xml布局文件的应用,看对不对,不对就要手动改过来了,呜呜。。。。。。
如果,确定全部改完无误之后,重新Rebuild Project
万一,还是有刚才那个错误的话,记得再回头检查一遍java文件和布局文件,看看各自的引用对不对,如果全部都改对之后,还是有错误的话,哪就静下心来错误提示
如果不是DataBinding引起的话,一般都会找到比较明显的提示
==========我是有分割线的:2019.04.15更新=================================
如果真不好遇到第二种情况的话,面对databanding这种框架,那就只能使用全局替换的方法了
ctrl + Shift + R
android studio软件怎么重命名文件包名?重命名文件包名很有可能会导致程序编译错误的问题发生,但是很多情况下程序开发者都有可能会需要对程序进行重命名的操作,如何操作才能使android studio软件正确重命名呢?下面为大家整理了几种方法,其中第二种最好用,大家可以看看。
android studio软件中重命名快捷键:
shift+F6:可对类、方法、变量进行重命名
android studio软件重命名文件包名方法一:
首先创建一个新的软件包所需的名字通过右键点击文件夹-新建- Java包
然后,选择并拖动你的所有类的新方案。androidstudio将重构包名随处可见。
最后,删除旧的包。
android studio软件重命名文件包名方法二:
比如 我们需要把 package="com.net.studyplayer.chinese" 修改成 "com.net.studyplayer.english"
这样 我们就可以在同一台机子上安装这两个APK了 因为他们的包名已经不一样了
但是我们需要修改的地方不只是这一处,还有原文件夹名也要修改
在我们先修改了AndroidManifest.xml 中的名字之后 会发现文件中凡是有用到R文件的地方都会报错
其实这个就非常简单了
右键点击上图中 "chinese"的那个包
这样子基本上就所有的报错信息都消失了 clean一遍 然后重新编译 就OK了
Eclipse和Android Studio都提供了自动修改包名的工具,Android Studio在选中包名后,使用快捷键 shift+(Fn+)F6 或者选中菜单 Refactor-》Rename 进行重命名。
不要选中下面提供的两个选项,重命名后,我们还需要 手动修改AndroidManifest.xml 文件
修改的工作理论上已经完成, clean下项目,运行!如果此时出现错误,【内容中还包含之前包名的信息】 ,
Android studio无法使用F2的方式直接重新命名。
android studio软件重命名文件包名方法三:
1、进行打开电脑中已经安装好的Android studio的应用程序,并在在Android studio中加载项目的文件。
2、选中完项目之后,进入到项目中找到需要重新命名的文件。
3、然后就可以点击Android studio菜单中列表中的Refactor的选项。
4、这样就会弹出了一个下拉菜单中选项,进行选择下拉菜单中的“rename”的选项。
5、弹出rename的选项框,在输入框中输入需要重新的命名的名称。
6、可以看到了该的文件名称被重新命名成功了。
目的声明:本文只是为了满足DIY的需要,并不是为了成为打包党,窃取别人的劳动成果,本文所涉及的工具也均为开源的,仅供学习交流之用。
DIY前提:在国内的论坛里,搜索了一下,找到了各种解包,打包的技术内容,以及各种汉化、去广告的帖子,但这个并不是本文的目的。以前见过打包党不仅修改了别人apk的广告用来获利,还将别人apk的包名修改了,所以有人早就实现了,但未能找到相关的技术文章,本文涉及的知识都还是比较浅显的,没有深入的研究底层原因,也参考了网上几个帖子。
PS:在国内论坛上,找一篇原创的帖子很难,基本都是转载的,还不附原文链接,引入了的很多错误,想找到原文都很难,真是很悲剧。国内论坛里,热心人还是少了点,很多问题都死了,无人回答,笔者尝试在CSDN、ITEYE、EOE发过几个帖子,但很少能解决问题,于是只能求助于国外论坛,这也是一个悲剧。
这个问题解决完了,也很简单,至少我这个比较简单,我是想多安装几个QQ浏览器(有IT屌丝安装了10个微信的,这个我表示很汗),基本过程如下:
1、将apk解包成一个文件夹
2、修改AndroidManifest.xml中对应的包名
3、修改smali目录下中的包
4、将文件夹打包成apk
5、将apk重新签名
6、验证apk的签名
7、优化apk
8、安装apk,并测试
基本前提条件:
1、java的环境
2、Eclipse及android的开发环境(这个主要是用来进行调试)
3、text文本编辑器,本人用的是UEdit,也可以用类似的,主要是利用其查找及替换功能
这篇文章主要用来反编译apk得到源码,但google进行了反制,只能得到一些可读性不高的源码,这里主要是利用反编译apk生成程序的源代码和图片、XML配置、语言资源等文件.
参考文献里提到的apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip均可以从code.google.com/p/android-apktool/上下载,下载好之后,将涉及的命令行目录及exe目录添加到电脑的path路径中,这样就便于操作了,如检测apktool是否可以,可以在命令行中输入apktool,如果可以识别就表示OK了。
参考了国内的技术文章后,有人发帖以上面的思路进行操作,但没有发技术文章,所以笔者只能去国外论坛中逛逛了,在Stack Overflow中,找到了相关的帖子,有老外留言"you can't do this",这个的确有违技术道德,但这里只做学习参考或交流。找到了一片帖子stackoverflow.com/questions/9218641/renaming-the-package-name-inside-an-apk,这篇帖子的回答给了比较详细的步骤(如上),他的情况比这个还稍微复杂点,简化后就是我要的结果,我就是按照这个基本步骤来的,回答的英文比较好懂(很有可能是国人)。
下面就按照上面的步骤一步步操作:我是已QQ浏览器4.0版的apk来操作的。
1、我的apktool安装到了E盘下的apktool目录下,所以的操作也在这个目录下进行 E:\apkTool
将apk复制到E:\apkTool目录下,重命名为qq4.0.apk(这个没有要求,随意就好)
将apk解包 命令行下cd到E:\apkTool这个目录 apktool d qq4.o.apk qq4 将apk解包到qq4(这个也可以随意)这个目录
E:\apkTool\qq4这个目录下内容如下:
2、修改AndroidManifest.xml中的包名,
将package后面的包名com.tencent.qbx改为你想要的新包名,我改为了com.tianxiao.tencentweb
将涉及原包名的com.tencent.qbx的相关activity的声明中的包名均改为新包名com.tianxiao.tencentweb
至于intent-filter里面的action名中包含原包名的,则可以不改,如果改的话,代码中也要相应的改变
另外,如果有provider,provider的authorities也得改,这个在同一手机上必须唯一,否则安装会失败
3、在E:\apkTool\qq4\smali目录下,有很多子目录,子目录下的文件多以smali结尾,这中文件的语法有点类似于汇编语言,具体原理就不深究了。
将smali目录下的所有文件中的原包名的声明形式com/tencent/qbx改为新包名com/tianxiao/tencentweb
具体如下,用UEdit在文件中替换即可,将目标目录指向E:\apkTool\qq4\smali,这个将近1000条左右
如果之前改为action里面的包名,也要将字符串形式的包名com.tencent.qbx改为com.tianxiao.tencentweb
如果有provider也要讲原来的authorities值改为在AndroidManifest.xml中新改的authorities值。
4、将E:\apkTool\qq4重新打包为apk
apktool b qq4 newqq.apk
5、将新的newqq.apk 重新签名
签名的方法很多,一主要是手动生成签名,用命令行签名
我采用的现成的,下载了一个Auto-sign的文件夹,进行了签名,这个比较简单,网上帖子很多,就不赘述。
新签名后的apk名为 newqq4signed.apk
首先java SDK
然后配置java环境
然后反编译软件
然后找到里面的AndroidManifest.xml 里面第一行就有包名,版本等等信息,
然后打包
然后安装测试
回答不容易,希望能帮到您,满意请帮忙采纳一下,谢谢
基本过程如下:
1、将apk解包成一个文件夹
2、修改AndroidManifest.xml中对应的包名
3、修改smali目录下中的包
4、将文件夹打包成apk
5、将apk重新签名
6、验证apk的签名
7、优化apk
8、安装apk,并测试
基本前提条件:
1、java的环境
2、Eclipse及android的开发环境(这个主要是用来进行调试)
3、text文本编辑器,本人用的是UEdit,也可以用类似的,主要是利用其查找及替换功能
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流