【聲明:】本文是作者(蘑菇v5)原創,版權歸作者 蘑菇v5所有,侵權必究。本文首發在簡書。如若轉發,請注明作者和來源地址!未經授權,嚴禁私自轉載!
區分包名和applicationid的區別:
這里的包名,并不是applicationid,首先我們要明白applicationId的含義是什么,applicationId在Android系統中是作為應用的唯一標識,即在一個Android設備中所有的應用程序的applicationId都是唯一的。這意味著,一旦你已發布的程序使用了這個applicationId,你就無法再修改它。如果修改了,那么這個應用程序就會被系統當作是一個全新的應用程序,和你之前的應用程序是相互獨立的。
我們看一下清單文件:
<manifest
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上的答案,其中的答案有一部分在我這里不能使用,答案中給出了好幾種解決的方案,請多試幾次,或許有適合你的。