** 以下內(nèi)容并非本人原創(chuàng)柬采,只是網(wǎng)友提供揍鸟,轉(zhuǎn)載不詳流强,此處僅作備忘 **
dependencies {
compile 'com.google.code.gson:gson:2.+'
}
這樣的寫法可以保證庫每次都是最新的犀呼,但也帶來了不少的問題:
- 每次build時(shí)會向網(wǎng)絡(luò)進(jìn)行檢查,國內(nèi)訪問倉庫速度很慢
- 庫更新后可能會更改內(nèi)部邏輯而帶來bug蹬蚁,動(dòng)態(tài)版本無法通過git的diff來規(guī)避此問題
- 每個(gè)開發(fā)者都可能會得到不同的最新版本沧竟,帶來潛在隱患
推薦寫成固定的庫版本:
dependencies {
compile 'com.google.code.gson:gson:2.2.1'
}
為何會牽扯到此問題?#####
某一天缚忧,我將compile 'com.android.support:appcompat-v7:23.0.1
改為compile 'com.android.support:appcompat-v7:23.0.2
,然后就出錯(cuò)了杈笔,原因是根本沒有23.0.2這個(gè)版本闪水。
- 那我們怎么知道到底有哪些版本呢?看這里Support Library Revision History
- 那要是改成24.0.0會怎么樣蒙具?22.0.0又會怎么樣球榆?前提:
compileSdkVersion 23
24.0.0 報(bào)錯(cuò),但是能run禁筏,app在模擬器上可以運(yùn)行
22.0.0 報(bào)錯(cuò)持钉,但是能run,app在模擬器上可以運(yùn)行
Paste_Image.png
Paste_Image.png
** 錯(cuò)誤提示很明確篱昔,就是告訴你這里的版本號如果和compileSdkVersion版本不一致每强,就可能導(dǎo)致bugs始腾,這是每個(gè)程序員都不想要的,所以我們在編程的時(shí)候要保證compileSdkVersion空执、targetSdkVersion以及依賴庫的版本一致 **
SDK說明#####
- tools目錄:包括測試浪箭、調(diào)試、第三方工具辨绊。模擬器奶栖、數(shù)據(jù)管理工具等。
-
platform-tools目錄:包含開發(fā)app的平臺依賴的開發(fā)和調(diào)試工具门坷。從android2.3開始劃出此目錄宣鄙,存放公用開發(fā)工具,比如adb默蚌、sqlite3等冻晤,被劃分到了這里。
包括:
adb:android調(diào)試工具
fastboot:boot工具 -
build-tools目錄:編譯工具目錄敏簿,包含了轉(zhuǎn)化為davlik虛擬機(jī)的編譯工具明也。
包括:
1、aapt(Android Asset Packaging Tool):編譯應(yīng)用程序的資源文件(包括AndroidManifest.xml和你的Activities的xml文件)惯裕,生成R.java文件温数,這樣你就可以從你的java代碼中引用資源。
2蜻势、aidl:把.aidl 接口轉(zhuǎn)換成java接口.
3撑刺、dx:轉(zhuǎn)化.class中間代碼為dvlik中間代碼,所有經(jīng)過java編譯的生成.class文件都需要此工具進(jìn)行轉(zhuǎn)換,最后打包進(jìn)apk文件中.
4、dexdump:dump devlik中間代碼 - platforms/<android-version>目錄:包括android的平臺握玛。包含在android.jar庫中够傍。你必須指一個(gè)平臺為你的編譯目標(biāo)。
- system-images目錄:編譯好的系統(tǒng)映像挠铲。模擬器可以直接加載冕屯。
- sources目錄:android sdk的源碼目錄
- samples目錄:sdk例子
Android開發(fā)環(huán)境配置(win7_64bit)
Android SDK Manager和AVD Manager使用(win7_64bit下測試)
Android關(guān)于buildToolVersion與CompileSdkVersion的區(qū)別
Android中build target,minSdkVersion拂苹,targetSdkVersion安聘,maxSdkVersion概念區(qū)分