寫在前面
第三方只要文檔詳細(xì)沉迹,基本的功能用起來(lái)是十分方便的(和硬件底層有關(guān)的就算了浪谴。开睡。),但是環(huán)境配置可謂入門小白的一大噩夢(mèng)苟耻,反正我剛開始學(xué)的時(shí)候篇恒,各種環(huán)境配置簡(jiǎn)直讓我撓破了頭。這里我會(huì)詳細(xì)的記一下我集成的步驟凶杖。
1.申請(qǐng)秘鑰
這里只列出兩個(gè)關(guān)鍵步驟的操作:
- 獲取包名
- 獲取SHA1
獲取包名非常的簡(jiǎn)單胁艰,只要在AndroidManifest中看一下package的值就可以了
接下來(lái)是獲取SHA1,這里簡(jiǎn)單的介紹一下,我們每次打包都會(huì)使用簽名文件生成apk腾么。而我們debug的時(shí)候看似沒有這一過程奈梳,實(shí)際上Android Studio用了一個(gè)debug.keystore簽名文件來(lái)打debug包。當(dāng)然解虱,這個(gè)簽名文件是可以自己指定的攘须,比如用以下的代碼指定debug的簽名文件:
signingConfigs{
debug{
storeFile file("xxx")
}
}
所以如果無(wú)論你怎么獲取SHA1,都鑒權(quán)失敗饭寺,那么可能就是你獲取的SHA1并非簽名文件的的SHA1阻课,這一點(diǎn)注意一下就行了。
我們需要一個(gè)叫做keytool的工具來(lái)獲取SHA1艰匙,如果你在使用的時(shí)候顯示“keytool不是內(nèi)部或外部命令xxxx”之類的東西限煞,那么是因?yàn)槟鉐ava的環(huán)境變量沒有配置好≡蹦可能你的Java命令可以用署驻,但是Javac不行。javac和keytool都是在java/jdk/bin目錄下的exe文件健霹,不配也可以用旺上,只不過要寫全目錄,那還是配好環(huán)境變量吧糖埋。只要你javac可以用宣吱,那么keytool也可以。
準(zhǔn)備工作和注意點(diǎn)說(shuō)完了瞳别,開始獲取SHA1吧征候,cmd中輸入:
cd .android
keytool -list -v -keystore debug.keystore
默認(rèn)的密碼是android,敲入回車即可看見SHA1
之后根據(jù)這個(gè)去申請(qǐng)秘鑰就好了祟敛。
申請(qǐng)好秘鑰疤坝,將AK寫入清單文件的application標(biāo)簽里面,我這是定位馆铁,上面的name是lbsapi跑揉,如果是地圖的話,可能要額外添加一個(gè)埠巨。
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="your key" />
2.配置環(huán)境
我這里是集成定位历谍,不過配置環(huán)境的步驟都差不多。
首先是下載官方提供的開發(fā)包辣垒,注意選擇能滿足自己需求的包扮饶,沒必要一股腦的全下下來(lái)。像我就是用了定位和檢索兩個(gè)功能乍构,選擇這兩個(gè)的開發(fā)包下載就行了。下載好將幾個(gè)架構(gòu)的so和jar包都放入項(xiàng)目中的libs文件夾下,
鼠標(biāo)右鍵點(diǎn)jar包add as library哥遮,或者自己在build.gradle中的dependencies寫一行compile files('libs/BaiduLBS_Android.jar')岂丘,將jar包引入項(xiàng)目。接著比較重要的一點(diǎn)來(lái)了眠饮,將jniLibs指向libs目錄奥帘。在android中存放so文件的目錄一般是jniLibs,但是在Android Studio中我們是可以通過groovy讓jniLibs指向libs的仪召,方法就是在app的build.gradle中的android{}中添加如下代碼:
sourceSets{
main{
jniLibs.srcDirs = ['libs']
}
}
這樣寨蹋,百度定位所需要的jar包和so文件就全部引入了。這里還有一點(diǎn)需要注意扔茅,雖然百度不需要配置已旧。就是libs中的這幾個(gè)文件夾,arm64-v8a召娜,armeabi等等运褪,這些指的是設(shè)備cpu的架構(gòu)。對(duì)應(yīng)架構(gòu)的cpu會(huì)去對(duì)應(yīng)的文件夾下找相應(yīng)的so文件玖瘸,如果沒找到就會(huì)報(bào)錯(cuò)秸讹。百度這里支持的很好,有五個(gè)架構(gòu)CPU的so文件雅倒,那如果只有一個(gè)armeabi該怎么辦呢璃诀?這在開發(fā)中是經(jīng)常碰到的,這個(gè)時(shí)候就需要abiFilter了蔑匣,這里只給個(gè)名字劣欢,各位請(qǐng)自行搜索。
權(quán)限還有service的配置以及具體的使用殖演,跟著文檔來(lái)就好了氧秘,文檔還是很詳細(xì)的。
最后碰到問題不要慌趴久,慢慢搜索丸相,總是能找到答案的。