google play Service導入

Google Maps API v2 android版本開發 國內手機不支持google play Service相關問題解決--圖文教程java

google 地圖在國內的使用讓人很頭痛,麻煩得要死,真搞不明白google爲何不能搞成跟百度地圖那樣讓人使用。android

後注:最近刷機後從新安裝(默認root的)能夠直接在市場上下載幾個apk安裝後使用google服務了。git

google maps依賴於google play Service,而國內手機大部分都沒預裝google play Service,單獨安裝也安裝不了,要root後通過幾步安裝系統app才能使用。api

v2版本的申請api key方式讓調試也變得複雜,開發的jar包不是用普通的導入方式就能夠的,還須要導入工程,相對其餘功能來講複雜了不少,網上搜索了不少資料,本身測試出了不少問題後總算在手機上看到地圖了,這裏記錄一下,時間是2013-03-25.(之後可能如今能夠的方法又不行了)。app

把本身手機上最新的apk導出來傳到博客上共享了 google服務相關apk-20130325.zip eclipse

http://files.cnblogs.com/zdz8207/google%E6%9C%8D%E5%8A%A1%E7%9B%B8%E5%85%B3apk-20130325.zip測試

官方介紹地址google

Google Maps Android API v2的初步介紹:
  https://developers.google.com/maps/documentation/android/
  Introduction
  https://developers.google.com/maps/documentation/android/introspa

===================================================插件

具體步驟:

1、下載 Google Play services SDK :打開Android SDK Manager進行下載。

更新sdk內容,拉到最下面,下載會到你sdk目錄的extras目錄下,具體路徑跟你環境有關,如上圖,鼠標移動上去能夠看到。

2、申請api key

1.獲取數字證書的證書指紋,數字證書(digital certificate)有Debug和Release兩種。
本地調試的debug keystore 文件debug.keystore。
默認和虛擬機AVD存放在一塊兒,xxx\.android\,也能夠經過Eclipse中的Windows>Preferences>Android中的Default debug keystore進行查看。
Release的是本身發佈應用生成的keystore
在cmd命令行裏切換到你安裝的JDK的bin目錄中輸入下列命令(路徑替換成你本身的):
keytool -v -list -keystore E:\android\avd\.android\debug.keystore

debug.keystore默認密碼是android,本身的簽名文件是你本身設置的密碼,跟發佈時輸入的密碼同樣。
查看"證書指紋"中的SHA1中的內容,這個內容記下來,接下來會使用到.
效果圖以下:

2.建立Google Maps API Key

https://code.google.com/apis/console
須要先登陸,首次使用會出現讓你建立API工程的頁面.
點擊Create project後會跳轉到services頁面,須要在這個頁面選擇你要使用的API.選擇Google Maps Android API v2.
跳轉到服務條款確認的頁面,接受後,在顯示的頁面中左邊列表選擇」API Access」,而後點擊Create new Android key... 按鈕.

在彈出的對話框中填寫SHA1認證指紋和程序的包命,中間用分號分隔(google自帶的google map v2示例程序的包命是com.example.mapdemo):
C6:3D:DB:7B:1C:07:FD:5A:53:E0:85:28:3D:D1:5F:FE:FF:8E:D1:38;com.example.mapdemo
點擊create按鈕後,就建立了一個新的API key:
Key for Android apps (with certificates)
API key:
AIzaSyDFGLwpvnJ33QxKvHPY7MxrhbNUX29J42Y
Android apps:
C6:3D:DB:7B:1C:07:FD:5A:53:E0:85:28:3D:D1:5F:FE:FF:8E:D1:38;com.example.mapdemo
Activated on: Mar 25, 2013 12:56 AM

上面生成的API key配置到AndroidManifest.xml
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyDFGLwpvnJ33QxKvHPY7MxrhbNUX29J42Y"/>

再到Service裏面打開api功能,尤爲是android的api v2 哪項,不然沒法使用申請的key

3、導入工程

Eclipse中選擇 File > Import, Android > Existing Android Code into Workspace. (注意: 是 Android > Existing Android Code into Workspace, 不是General > Existing Projects into Workspace, 不然是沒法導入) ,拷貝到本身的工做目錄,注意:這個項目和maps項目必須在同一文件夾或者工做空間才行,不然會出錯。

導入<android-sdk-folder>/extras/google/google_play_services/samples/maps 注意:新版本eclipse不能先複製到workspace下再導入了,不然會報錯。

Eclipse中選擇 File > Import, Android > Existing Android Code into Workspace,把此程序導入到Eclipse中.(注意: 這裏是 Android > Existing Android Code into Workspace, 而不是General > Existing Projects into Workspace, 不然會出現大量錯誤.)

導入後發現有大量錯誤,解決辦法

1.刪除res\layout下面的options_demo.xml multimap_demo.xml 刪除對應類,修改MainActivity。

2.建立libs文件夾,導入android-support-v4.jar

3.修改AndroidManifest.xml 把申請到的api key 填到裏面,

注意,你的包名必須和申請的一致才能夠,修改了包名之後要從新申請,固然debug.keystore不同也要從新申請,就是說我這裏這個key你是用不了的

<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyDFGLwpvnJ33QxKvHPY7MxrhbNUX29J42Y"/>

4.把google-play-services.jar這個jar包導入,在本身的項目上右鍵,選Properties,左邊選Android,而後在下面的Library裏面Add剛纔的google-play-services_lib。

注意:必定要變成綠色打勾了之後才能夠,當前狀況下能夠的,關閉後再進入有可能又變紅x了,緣由應該是路徑的問題,上面說過了兩個項目必須在同一workspace裏面才能夠。

另外,手機的google play必須更新到最新版本,不然第一次運行會提示要你先更新了才能使用。

本人的運行效果:

測試過程遇到了不少問題,可能不一樣環境,不一樣機型還會遇到其餘問題,我遇到的問題要點都在上面說明了,下面是兩個報錯比較多的異常。

03-25 13:09:00.265: E/AndroidRuntime(16215): java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable

03-25 15:45:19.311: E/Google Maps Android API(10212): Failed to load map. Could not contact Google servers.

最後爲了方便你們把本身手機上最新的apk導出來傳到博客上共享了 google服務相關apk-20130325.zip

把兩個導入到workspace的項目代碼也發上來吧---因爲key和環境不同,其餘人導入了也用不了的,只能作參考了。

google-play-services_lib.zip  maps.zip

=========================================

收集的一些反饋信息

博主,我虛擬機跑的地圖是英文版的 看你截圖跑出來是中午地名 這個哪裏控制 。 還有博主Release版的 發佈後在手機上地圖跑出來了沒? 我建立的私人證書 而後用裏面的SHA1申請了API KEY 替換key後在手機上顯示的是一片空白 地圖顯示不出來 只有+-兩個標準 包名是匹配的  因爲我是新手 第一次生成自個的私人密鑰 地圖始終顯示不出來 我懷疑是個人證書有問題 求助啊..---------------------------------------------------------地圖出來什麼版本跟手機或者虛擬機設置的語言有關的,你把語言設置成中文,地圖就變成中文了,這個是google地圖本身作的事情。Release版的和debug版的沒什麼差異的,就生成api key的SHA1不同。 能夠用ADT插件生成的私人證書而後導出簽名。Release版的證書你不能在eclipse裏面直接run的,直接run的是用debug的簽名的,Release版的須要Export出正式版apk安裝才能正常使用。

相關文章
相關標籤/搜索