【声明:】本文是作者(蘑菇v5)原创,版权归作者 蘑菇v5所有,侵权必究。本文首发在简书。如若转发,请注明作者和来源地址!未经授权,严禁私自转载!
区分包名和applicationid的区别:
这里的包名,并不是applicationid,首先我们要明白applicationId的含义是什么,applicationId在Android系统中是作为应用的唯一标识,即在一个Android设备中所有的应用程序的applicationId都是唯一的。这意味着,一旦你已发布的程序使用了这个applicationId,你就无法再修改它。如果修改了,那么这个应用程序就会被系统当作是一个全新的应用程序,和你之前的应用程序是相互独立的。
我们看一下清单文件:
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.test.app"
android:versionCode="1"
android:versionName="1.0" >
在这里,我们需要注意一下,在eclipse中是没有applicationId这个概念的,在elcipse中applicationId即等同于package name,也就是我们清单文件中声明的package,它是作为一个应用的唯一标识。而在android studio中将这两个概念进行了隔离,我们可以在gradle文件中配置applicationId作为应用的唯一标识,假如没有在gradle中进行相应配置,那么applicationId就会默认为package name,不过我们一般会进行配置。所以package name在android studio中理解为一个查询类的路径比较合理,因为我们在配置四大组件的时候,name是可以缩写的,而package name就是我们可以省略的部分。
需要注意的是,我们在进行开发的时候,用到的一些第三方sdk需要我们的包名,这的包名指得是applicationId而并非package name,当然在eclipse中也就没有区分了,因为它只有package name。
重命名包名的方法如下:
在java 文件夹下新建一个package,名字随便取,如com.dc.zsn.app。
java文件夹所在目录.png
将之前写好的类全部选中,并拖拽到新的包中来,此时项目中的所有用到包名的地方都会随之更改,自己再手动的更改一下AndroidManifest.xml文件中manifest下的package就好了;如果拖拽不成功,就去项目根目录下,全部选中后,ctrl+v拷贝一下,然后手动删除代码中的错误导包,自动生成import+包名(前提是配置了自动导包)。
将之前的包删掉就可以了。
或者参考stackoverflow上的答案,其中的答案有一部分在我这里不能使用,答案中给出了好几种解决的方案,请多试几次,或许有适合你的。