網頁

2013年1月11日 星期五

Android學習_如何開始使用Google Maps Android API v2

前一陣子想要測試一些Google Map的東西,才發現他默默的在2012年12月3日推出了Google Maps Android API v2(官方資料),而原本申請key與使用的方式變的不太一樣。

要讓手機正確出現Google map需要下列步驟:
1. 建立個人的keystore。
2. 由個人的keystore查詢SHA1碼。
3. 利用SHA1碼至Google apis網站申請key。
4. 於eclipse安裝Google Play services。
5. 於要使用Google Map的專案加入google-play-services_lib的Library。
6. 於專案的AndroidManifest與layout.mal加入需要的設定。
7. 利用第一步驟的keystore匯出專案為apk檔案。
8. 以adb安裝上述apk檔案。


詳細步驟:
1. 建立個人的keystore。
A. 開啟DOS命令視窗,找到java的bin資料夾(C:\Program Files\Java\jre6\bin)
B. 輸入keytool指令(keytool -genkey -v -keystore yourkeyname.keystore -alias yourkeyname -keyalg RSA -keysize 2048 -validity 10000)
輸入後,會有一系列的問題,需要注意的是過程中會輸入兩種密碼,網路上書上都推薦怕記不住就用一樣。


2. 由個人的keystore查詢SHA1碼。
A. 還是一樣先開啟DOS命令視窗,找到java的bin資料夾(C:\Program Files\Java\jre6\bin)
B. 使用"既有keystore取得SHA1的語法(keytool -list -v -keystore "C:\Program Files\Java\jre6\bin\yourkeyname.keystore"),鍵入語法後就必須要輸入剛剛建立時所設定的密碼。(語法中加上-v才會顯示SHA1碼)


3. 利用SHA1碼至Google apis網站申請key。
A. 連至申請網站https://code.google.com/apis/console/
B. 若是第一次使用按Create Project。
C. 選擇左邊列表的Services,並且將google Maps Android API v2調整成"on"。
D. 選擇左邊列表的API Access,並且點擊右下角的Create new Android key。
E. 輸入步驟二得到的SHA1與專案的Package名稱(中間以分號分隔),例:SHA1碼;tw.com.maptest。
F. 記住API key。


4. 於eclipse安裝Google Play services。
A. 進入Android SDK Mnanger(eclipse→windows→Android SDK Mnanger)。
B. 安裝Extras的Google Play services。


5. 於要使用Google Map的專案加入google-play-services_lib的Library。
A. 於eclipse→File→import,選擇Android下的Existing Android Code Into Workspace。
B. 由Browse選擇→[android-sdk-folder]/extras/google/google_play_services/libproject/google-play-services_lib
C. 於要使用Google Map的專案按右鍵,選擇Properties。於左側選單選擇Android,並於下方Library上述加入的專案google-play-services_lib。


6. 於專案的AndroidManifest與layout.xml加入需要的設定。
A. 打開AndroidManifest加入必須的設定。
於application標籤之上(注意下述程式碼必須置換yourpackagename成你的package名稱):
<permission android:name="yourpackagename.permission.MAPS_RECEIVE" android:protectionLevel="signature"/> <uses-permission android:name="yourpackagename.permission.MAPS_RECEIVE"/> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
於application標籤中加入(注意下述程式碼必須置換GoogleMapAPIKey成剛剛申請到的Key):
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="GoogleMapAPIKey"/>
於application標籤下加入:
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
B. 打開layout.xml,將介面先改為較單純的內容,待測試OK後再更改為自己需要的介面。
<?xml version="1.0" encoding="utf-8"?> <fragment xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.MapFragment"/>
C. java用最單純的內容先進行測試: package yourpackageName; import android.os.Bundle; import android.app.Activity; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }

7. 利用第一步驟的keystore匯出專案為apk檔案。
A. 專案右鍵選擇Android Tools→Export Signed Application Package。
B. 依照步驟可以匯出帶有簽章的apk檔案(過程中必須輸入最初設定的keystore密碼)


8. 以adb安裝上述apk檔案。
A. 利用adb指令(adb install Name.apk)

最後,執行程式,確認手機有連上網路,迎接你的地圖吧。

這篇有幫助到你了話,請留"YA~~~看到圖了"


2013年3月22日由劉佺網友補充如何在不匯出專案的情況下,使用debug.keystore來進行實機測試:
以下為完整留言,感謝他的補充:
不過隨即發現不用匯出成apk這麼麻煩,如果用他預設的debug.keystore去產生api key,就可以直接從eclipse/Run As去選擇自己的裝置
預設的debug.keystore可以從Preferences \ Android \ Build \ Default debug keystore去查詢
步驟二的語法就會變成:keytool -list -v -keystore "C:\Users\使用者名稱\.android\debug.keystore"
預設的debug.keystore的預設密碼是:android;這樣去申請,DEBUG時測試起來就會比較快(非常多 XD),就不用每次都匯出成專案了

剛才測試的時候發現,申請完以後,如果要改成自己之前新建的keystore
1. 先查自定密碼的keystore的SHA1碼
2. 到Google的API Access分頁
3. 選擇右邊的Edit allowed Android apps...
4. 將前半的SHA1碼改掉,分號後面的專案名稱不動
結果API key也不會變動,匯出專案時就可以用自訂的密碼了
實際安裝起來Google Map也可以正常顯示
----------------------------------------------------------------

90 則留言:

Unknown 提到...

果然還是版大的最好用,之前找的範例都直接錯誤....

這次照這個範例用實機測試,地圖沒出來一片空白0.0

ola的家 提到...

如果地圖沒出來,通常都是key沒有對應keystore匯出專案、沒有使用正確的、沒有網路或是網路沒有權限等問題。

可以順序確認以下事項:
1. 是否是用建立的keystore產生SHA1
2. 是否用上述的SHA1去申請google map api key
3. 是否有將取得的google map api key寫在AndroidManifest檔
4. 這個專案是否有用建立的keystore匯出成apk
5. 是否安裝這個apk

Unknown 提到...

剛剛重弄了一次,還是不行...還是一片空白

Unknown 提到...

YA~~~看到圖了

問題是出在我開到這個 google Maps Android API v2

我開到他下面那個=___=

弄了一個多月終於出來了T^T

真的謝謝版大~

ola的家 提到...

恭喜你 :D

匿名 提到...

不好意思,我沒有跑出來嗚嗚嗚 T^T
我的狀況是可以燒進去手機,但執行之後會出現程式已停止

請問res裡的MainActivity.java有做更改嗎
還有,我的AndroidManifest.xml裡的<uses-sdk是話黃底線,請問這會影響到嗎...

我是個初學者~"~,感謝大大能替我解答

ola的家 提到...

如果執行後直接錯誤跳離程式,那必須要看錯誤的log內容才知道。

至於黃底線是警告訊息,表示你違反他希望你的寫法,但不會造成程式錯誤或當機。

所以你還是要先看log裡面的訊息,才能找到錯誤的原因。

MainActivity.java我記得是不用做任何修改。

Unknown 提到...

請問版大:
我之前有寫過舊版的google map,想請問新版跟舊版語法上有沒有差別呢?
我舊的apikey弄丟了,能直接套用新版的apikey嗎?

ola的家 提到...

語法的差別可能要看官方說明文件比較準。

新舊apikey沒有關聯,直接申請新的即可。

Unknown 提到...

請問板大
我在匯出的時候會出現錯誤
我是開一個新的project
也是只修改AndroidMainfest.xml
和layout的部分
MainActivity.java 也沒有修改
還是要import哪些東西??
我也是初學者 >///<

ola的家 提到...

要有錯誤訊息才有辦法提供建議喔。

我也是初學者 >/////<

匿名 提到...

感謝大大,我已經try出來了
雖然我還是不知道錯在哪裡,我是全部重做了一次才好的= =
不過還是感謝大大>_____<
請問您之後還會更新更多的maps v2文章嗎~~
跪求 哈哈

ola的家 提到...

恭喜你,如果有做相關應用才會發。 :D

Unknown 提到...

https://www.dropbox.com/s/gc7zkhl6npjj7nj/error.png

匯出 會出現以下訊息
可幫我解答嗎 感謝

ola的家 提到...

專案按右鍵,選擇屬性,然後在左上方搜尋輸入lint,就可以看到實際的錯誤訊習。

怎麼解決要看那邊的列表才知道,但我猜是多國語系的檢查,你可以將他改為警告就好。

Unknown 提到...

了解
太感謝版主了 我地圖已經跑出來了 =)
只是用模擬器會跑比較慢 放到實機就OK了

Unknown 提到...

YA~~~看到圖了

試了好久才出現
這邊分享一下
如果在第一部建立keystore就會發生keytool 存取被拒時
window x64的請要最高權限開啟cmd.

然後一直要使用adb燒程式 實在好不習慣啊~~
之前eclipse都可直接覆蓋 現在要先反安裝

v2這版真是麻煩 但多了很多新東西 值得好好玩玩XD

ola的家 提到...

恭喜 :D

匿名 提到...

版大能好心施捨workable的完整project給我參考嗎?

ola的家 提到...

這篇的內容就是完整程式碼了。 :D

會出問題通常都是key的部分。

Unknown 提到...

你好,想請問一下我在手機上一直崩潰,實在是找不出原因
這是我LINT出現的Error有
1.
finds api accesses to apis that are not supported on all targeted api versions
2.
Checks for id references in RelativeLayouts that are not defined elsewhere
3.
There should be no cycles in style definitions as this can lead to runtime exceptions

拜託了大大

匿名 提到...

版大,原來新code最低API level要12,我一直用2.3.6的Galaxy Note試,甚麼都沒有,用朋友4.1的SIII最少有空白晝面看,希望有一天我會說:啊~我懂了!!

Unknown 提到...

不好意思 我可以請問板大
我正在做一個Google Map GPS定位自己位置
並且想將自己所在位置顯示在地圖上
所以我做了一個implements LocationListener的實作
但我現在卡一一小步驟,在定位中的
public void on LocationChanged(Location location){
} 當中我已經將自己所在位置轉成字串,成功印出所在位置的經緯度
(我是用getLongitude()和getLatitude()來取得位置的經緯度),但我又試了用MarkerOptions 想來標記定位後的地圖位置
以下是我的程式碼:
public void onLocationChanged(Location location)
{
// TODO Auto-generated method stub

if (location != null)
{
lngText.setText(Double.toString(location.getLongitude()));
latText.setText(Double.toString(location.getLatitude()));

double lat = (location.getLatitude());
double lng = (location.getLongitude());

MarkerOptions markerOpt = new MarkerOptions();
markerOpt.position(new LatLng(lat, lng));
markerOpt.title("My Location");
markerOpt.anchor(0.5f, 0.5f);
markerOpt.icon(BitmapDescriptorFactory.fromResource(android.R.drawable.ic_menu_mylocation));
mMap.addMarker(markerOpt);
}


}
請問問題出在哪裡呢 拜託了 =)

ola的家 提到...

喔!對!他有最低API限制。突然想通的感覺很讚喔!! :D

ola的家 提到...

問題是出在點沒有出現嗎?

看不出有什麼問題,可能先測試最簡單的狀態:

mMap.addMarker(new MarkerOptions()
.position(new LatLng(0, 0))
.title("Hello world"));

ola的家 提到...

LINT的錯誤只能依照他字面上去修正,這要配合程式碼才能知道。

離離 提到...

不好意思~我照您的方式去做,在手機上執行時會出現程式異常終止的視窗@@我看了一下LogCat的錯誤訊息:

02-01 18:19:27.248: E/AndroidRuntime(24815): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.map3/com.example.map3.MainActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class fragment
02-01 18:19:27.248: E/AndroidRuntime(24815): Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class fragment

想請問這該怎麼解決呢@@?

ola的家 提到...

Binary XML file line #2: Error inflating class fragment

這個錯誤表示你的xml裡面fragment有錯,可以先將程式碼都用最單純的方式測試。

你可以用本篇第六點的B與C項的程式碼來測試。

若是還有錯,就要朝你使用的sdk版本來確認,我寫這篇時是使用4.2。

ola的家 提到...

第六點c項是剛剛補充的。

離離 提到...

您好,我有照您說的去操作,且我的sdk也是4.2,執行後情況一樣,而logcat的內容變成

http://wings0313.pixnet.net/blog/post/37562012

想請問一下,該怎麼解決呢~"~

ola的家 提到...

你將你的activity的繼承由Activity改成FragmentActivity 試試看。

public class MainActivity extends Activity
改為:
public class MainActivity extends FragmentActivity

離離 提到...

抱歉@@我改了之後會出現
Description Resource Path Location Type
The method onCreate(Bundle) of type MainActivity must override or implement a supertype method MainActivity.java /map3/src/com/example/map3 line 7 Java Problem
FragmentActivity cannot be resolved to a type MainActivity.java /map3/src/com/example/map3 line 4 Java Problem
The method setContentView(int) is undefined for the type MainActivity MainActivity.java /map3/src/com/example/map3 line 9 Java Problem
FragmentActivity cannot be resolved to a type MainActivity.java /map3/src/com/example/map3 line 8 Java Problem

這些error

離離 提到...

大神謝謝你!!!我地圖跑出來了!!!

Unknown 提到...

OK了 終於改出來了 =) 謝謝板大

匿名 提到...

同一樣的做法,試了不下廿次,終於.....
YA~~~看到圖了!!










謝謝版大Orz

Unknown 提到...

YA~~~看到圖了



不過隨即發現不用匯出成apk這麼麻煩,如果用他預設的debug.keystore去產生api key,就可以直接從eclipse/Run As去選擇自己的裝置

預設的debug.keystore可以從Preferences \ Android \ Build \ Default debug keystore去查詢
步驟二的語法就會變成:keytool -list -v -keystore "C:\Users\使用者名稱\.android\debug.keystore"
預設的debug.keystore的預設密碼是:android;這樣去申請,DEBUG時測試起來就會比較快(非常多 XD),就不用每次都匯出成專案了

剛才測試的時候發現,申請完以後,如果要改成自己之前新建的keystore
1. 先查自定密碼的keystore的SHA1碼
2. 到Google的API Access分頁
3. 選擇右邊的Edit allowed Android apps...
4. 將前半的SHA1碼改掉,分號後面的專案名稱不動
結果API key也不會變動,匯出專案時就可以用自訂的密碼了
實際安裝起來Google Map也可以正常顯示

ola的家 提到...

@O@

非常感謝你提供測試結果,已補充於本文的最後,非常謝謝。 :D

Unknown 提到...
作者已經移除這則留言。
Yuer 提到...

YA~~~看到圖了

ola的家 提到...

恭喜 :D

小白 提到...

不好意思 請問 每次我貼上註冊好的API KEY 執行模擬時 android:layout_height="wrap_content" > 這段都會錯誤
Incorrect line ending: found carriage return (\r) without corresponding newline (\n)

是哪邊出問題?

Unknown 提到...

當看到圖的瞬間....YA.....

Unknown 提到...

YES!! 看到圖了~
感謝大大這篇文章!!!
找了好久問題
看到這篇文章圖片,原來SERVICE那邊原來是要勾選Google Maps Android API v2...

一把它on之後就看到地圖出現了~ 感謝分享!!

Take's 研究小窩 提到...

請教大大
我出現了下列錯誤 授權失敗
也重新申請好幾次 SHA1+套件名稱
一直出現 最後畫面有 但沒有顯示google map

http://140.116.249.139/web_file/error.jpg


請大大 幫幫忙

Unknown 提到...

如果keystore密碼我只按ENTER就過了那我實體密碼是什麼= =?

ola的家 提到...

我沒有測試過不輸密碼的狀況耶 @.@

匿名 提到...

YA~~~看到圖了!!!

原來是要打開Google Maps Android API v2才對呀
之前一直只開底下那個Google Maps API v2
這次對照著圖片一步一部做終於ok~

Unknown 提到...

Q1:版大請問我把書上使用API V1的範例的檔案,照你的方法改成API V2,可是都一直出現空白,是不能這樣改嗎!?
Q2:我也有有用版大的方法自己開一個專案來做,不過因為我手機ANDROID最高到4.03,所以只開4.03來用,跟你開的版本不一樣,不過有一步我跟坂大不一樣,就是adb那裏,我是直接用手機上的應用軟體來開apk,執行上沒有錯誤,不過還是一樣空白不然就是都是格線,到底是哪裡有問題啊>~<!!

ola的家 提到...

A1:理論上從什麼樣的範例改應該都可以,重開新的只是確保環境乾淨。
A2:不管用adb來裝apk或是其他App來裝都可以;另外我記得好像是API12就支援v2的地圖,所以用4.03的手機測應該不會有問題。
-------------------------------------------
畫面是網格可能的原因很多,你可以先確認:
1. 本篇文章第三步驟的C點,是否有勾對(google Maps Android API v2),而不是勾到js的。
2. 手機網路是否正常,是否有上網權限。
3. 匯出apk檔案的keystore,是否為拿去申請api的那個。

因為keystore跟key必須對應上,服務也要開對,都符合了地圖才會正常顯示,所以要各別都確認一下。

Unknown 提到...

YA~~看到圖了~快哭了我
照著大大步驟的例子成功了
感謝大大的指點迷津 讚!!
我想我在第三步出錯了
去網站重新設定一次我的SHA1就跑出漂亮的地圖了!!
不過又有一個新的問題了>"<
如下:

Q1:我匯入一個原本使用Android2.1撰寫的"定位自己位置"的範例
不過開啟後就出現許多錯誤!
所以我把它改成"Google APIs 4.0.3版本(使用Android 4.0.3也有錯誤,測試後發現只有用Google APIs才不會有錯誤)

修改部分,我"layout.xml和java"部分沒做修改其餘皆照大大的教學做修改,用手機軟體執行apk後又只有隔線了!!
我想這次我API2部分應該不會出錯,keystore跟key也有對照過了,可以再次請教大大一次嗎?

ola的家 提到...

依照你的描述很難判斷問題在哪裡,我的建議是:用你已經可以跑出地圖的專案,看懂定位目前位置的功能用到那些程式碼,把他加上去可能是比較好的做法,不然只是複製範例可能比較作不出變化。

傻傻 提到...

大大我照上述步驟做到第七點就出現"app_name" is not translated in af, am, ar, be, bg, ca, cs, da, de, el, en-rGB, es, es-rUS, et, fa, fi, fr, hi, hr, hu, in, it, iw, ja, ko, lt, lv, ms, nb, nl, pl, pt, pt-rBR, pt-rPT, ro, ru, sk, sl, sr, sv, sw, th, tl, tr, uk, vi, zh-rCN, zh-rTW, zu

Issue: Checks for incomplete translations where not all strings are translated
Id: MissingTranslation
這個錯誤請問要怎麼解決呢@@

ola的家 提到...

因為他檢查出"app_name"這個文字資源沒有支援多語系,所以希望你補齊。

要他跳過檢查的方式:
1. 從Eclipse的選單Preference
2. 找到左側選單Android > Lint Error Checking
3. 找到右側項目Correctness: Messages > MissingTranslate
4. 將Severity改為Warming或是ignore

傻傻 提到...

感謝你版主,但我的畫面還是一片白只有放大縮小鍵
http://www.wretch.cc/album/show.php?i=daniel40913&b=8&f=1993122446&p=0&sp=0
上面連續三張圖是分別照你上述步驟設定,不知道有沒有錯誤麻煩妳幫我檢查一下
我也有依照版主先前提到的步驟檢查,可是沒有發現錯誤@@
1. 是否是用建立的keystore產生SHA1
2. 是否用上述的SHA1去申請google map api key
3. 是否有將取得的google map api key寫在AndroidManifest檔
4. 這個專案是否有用建立的keystore匯出成apk
5. 是否安裝這個apk

ola的家 提到...

確認一下:本篇文章第三步驟的C點,是否有勾對(google Maps Android API v2),而不是勾到js的。

傻傻 提到...

不好意思我解決了!!!謝謝版主

ola的家 提到...

那問題是出在哪裡 @@?

傻傻 提到...

可能是網路的問題@@,後來不知為何重連網路地圖就跑出來了!
想請教一下我之前用location manager寫出基本的GPS定位,但是我想要把經緯度轉成實際的大地區如:台北,新北,桃園這樣@@
想請問一下有什麼好方法嗎?因為在那邊沒頭緒才想說不知道會用GOOGLE MAP API會不會有function可以讓我這樣做

Unknown 提到...

請教ola大大

我在虛擬機上RUN這支程式的話會顯示 this app wont run without GooglePlaysercices, which are missing from your phone.

但匯出到手機後卻會被強制關閉 請問是為什麼?

Water Long 提到...

救命.....我一直試都是這樣....

07-26 23:18:05.537: I/Google Maps Android API(11538): Failed to contact Google servers. Another attempt will be made when connectivity is established.

07-26 23:18:05.567: E/Google Maps Android API(11538): Failed to load map. Error contacting Google servers. This is probably an authentication issue (but could be due to network errors).

ginnyhuang 提到...

To 楊梓佑:
用Geocoder反向查址吧~他回來一串地址但實際上是個矩陣,你可以根據需要去取矩陣中縣市的那個值就可以了
(這是之前我在map v1版做的,不知道v2會不會有差異)

To Ping - Ling Yuan:
v2的map只能在實機上,因為他和google play service綁在一起了,而模擬器上沒有這個
如果真要用模擬器測試,可以看這篇,我個人是沒有用過啦,因為實機跑比較快XD
http://nkeegamedev.blogspot.tw/2012/12/android-google-maps-api-v2.html

至於匯出到手機卻會強制關閉,先用debug模式看看log出現的錯誤提示吧,通常是哪裡打錯或設定錯了

另外我現在也卡在Failed to contact Google servers. Another attempt will be made when connectivity is established.這個地方,不管是用debug或自己的keystore都一樣,地圖就是死不出來QAQ

---剛又看了下ola的留言---

有了!出現了,果然是粗心,應該要開Google Maps Android API v2卻開成Google Maps API v2..._( :3」∠)_
不過他打開大概需要一點時間,因為我剛剛一直試驗debug key的還是不行,後來又換成自己key匯出apk成功,現在再試驗debug的也可以了~

YA~~~看到圖了~~感謝ola~~(熊抱)

Unknown 提到...

您好,我是初學android的新手,目前是在做畢業專題才開使研究android開發。第一個開發google map遇到瓶頸,就是程式可以run,但只有網格,我有開起google map android v2的選項,也確定輸入的是我申請的API,請教您,我是哪個細節忽略了嗎?

ola的家 提到...

這樣要逐步確認,不然可能的問題太多了:
1. 是否是用建立的keystore產生SHA1
2. 是否用上述的SHA1去申請google map api key
3. 是否有將取得的google map api key寫在AndroidManifest檔
4. 這個專案是否有用建立的keystore匯出成apk
5. 是否安裝這個apk

1Bin 提到...

看了版大的文章之後終於跑出地圖了
還是版大您寫得清晰:P
謝謝您!!!

ola的家 提到...

恭喜你呀!

Unknown 提到...

不好意思 我操作到地7步驟 但是卡住了
Export Signed Application Package
在這裡面裡面一開始地location是要設定
Preferences \ Android \ Build \ Default debug keystore地預設位子麼??
如果沒錯地化,我到了弟二步地Alias下拉選單裡,他裡面沒有有任何地東西能選,步知道是神麼問題??

Unknown 提到...

版大我莫名通過了弟7步
但又卡在地8步.....
他顯示adb'不是內部或外部命令、可執行的程式或批次檔
不知道是有什麼問題??

ola的家 提到...

如果直接執行adb,那必須要先到adb.exe所在目錄喔。

若不清楚,可參考:http://wangshifuola.blogspot.tw/2011/06/androidadbapk.html

Unknown 提到...

YA~~~看到圖了~~感謝版大
弄了好久終於成功了,可以來嘗試額外的功能摟^^

匿名 提到...

感謝板大 弄半天才看到圖
還沒看到圖的 可以考慮每次修改KEY之後 都要CLEAN一下 我是這樣才成功的

匿名 提到...

可以問大大~~
JAVA那邊用MapActivity去寫就會是灰色網格
用Activity去寫就看的道地圖可以問一下哪邊還需要注意嗎>_<

yckris 提到...

成功了!!! 感謝!!!

Unknown 提到...

"YA~~~看到圖了"

Tim 提到...

YA~~~看到圖了 , 寫的非常清楚。讚!!

Unknown 提到...

版大你好~我都照你說的做~但是卡在fragment會當掉
MainActivity.java
http://ideone.com/eUX16M
activity_main.xml
http://ideone.com/VeoLIW
AndroidManifest.xml
http://ideone.com/2ePKtG
我有把xml的api key拿掉了~我這邊是我的api key

1.有把google_play_service引進來
2.申請api key的時候發現原本eclipse上就有debug.store的sha1所以就直接拿來用~
沒有照他一開始的方式找sha1 不知道有沒有差別
3.程式是選用google apis 4.3 api 18
模擬器也是用google apis 18
4.他的activity_main.xml是用fragment但是MainActivity裡面用extends Activity
這邊不知道有沒有影響,目前是照他用~之前有改成fragment測試好像也不行
5.他error一開始有說fragment有問題~不過網路上查了看不太出來問題在哪邊

這邊是error log
http://ideone.com/n3xTJE
卡住了~請求救援>_<

匿名 提到...

"YA~~~看到圖了"

我也有碰到frament的問題,在標籤中加上這段就ok了

匿名 提到...

meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"

Unknown 提到...

請問一下,
我在第5個步驟(使用Google Map的專案加入google-play-services_lib的Library)遇到了問題。

加入lib是綠色勾勾按apply和ok,再回去看Properties會變成紅色叉叉,project的欄位有個問號。
我開了新專案、重新install google-play-services都是一樣的狀況
輸出到手機上會跳出"已停止回應"的訊息,我猜想是上述的問題
請問該怎麼辦><

Unknown 提到...

您好,我照上面步驟走,怎麼程式一直開步起來,安裝完成一開就出現錯誤退出。
都沒機會看到第一個畫面。
我在想就算是key錯至少可以看到程式顯示一片空白~

後來我測試,怎麼layout只要放上MapFragment就必定會造成程式錯誤><
我試過改主程式的
public class MainActivity extends Activity改成
public class MainActivity extends Fragment Activity 好像也不行

有點像是樓上liu villix遇到的狀況....

匿名 提到...

請問一下,
我在第5個步驟(使用Google Map的專案加入google-play-services_lib的Library)遇到了問題。

加入lib是綠色勾勾按apply和ok,再回去看Properties會變成紅色叉叉,project的欄位有個問號。
我開了新專案、重新install google-play-services都是一樣的狀況
輸出到手機上會跳出"已停止回應"的訊息,我猜想是上述的問題
請問該怎麼辦><

ola的家 提到...

跳出"已停止回應',開DDMS裡面看錯誤訊息的log才會知道怎麼修改,單純這樣的描述很難猜到錯誤點,重點是log錯誤訊息的內容。

Unknown 提到...

有看到 frament的錯誤 請在
AndroidManifest.xml 裡面加上 以下程式碼


就可以執行了

Unknown 提到...

有看到 frament的錯誤 請在
AndroidManifest.xml 裡面加上 以下程式碼


就可以執行了

Unknown 提到...

您好
類似googleMap的縮放和滑動效果,google有API可以用嗎?

方丈 提到...

YA~~~看到圖了

依誓 提到...

YA~~~看到圖了
看完真的有非常大的幫助
謝謝

匿名 提到...

可以用GOOGLE我的地圖 顯示APP上嗎

匿名 提到...

您好!

我目前遇到的問題是匯出的部分,其他步驟包括取得私人金鑰,都已完成。

但就是匯出沒辦法,只要一匯出,就會出現許多BUG,已經重新做很多遍都還是一樣結果。

望請大大幫忙@@

簡有靖 提到...

都按照上面的做,但模擬器上沒有出現地圖,請問這是甚麼原因??

Unknown 提到...

我 引用了goolge -play-serverice-lib後出現這錯誤
Description Resource Path Location Type
error: Error retrieving parent for item: No resource found that matches the given name '@android:style/Theme.Material.Light.DialogWhenLarge.NoActionBar'. appinvite_styles.xml /google-play-services_lib/res/values-v21 line 5 Android AAPT Problem
The container 'Android Dependencies' references non existing library 'D:\Ecipse Workspace\google-play-services_lib\bin\google-play-services_lib.jar' GMapSample2 Build path Build Path Problem
The project cannot be built until build path errors are resolved GMapSample2 Unknown Java Problem
Unknown error: org.eclipse.core.runtime.OperationCanceledException testGmap Unknown Android Packaging Problem


API 和SHA1 我都設定完成了
但就是會出現這個 請問一下是為什麼??

張貼留言