2012-01-26 42 views
3

我剛剛刪除了我的Debug.keystore,因爲應用程序在我無法找到的項目文件上顯示錯誤。刪除梯形失真後,我的應用程序可以正常工作,除了地圖完全不顯示的事實 - 只有加載地圖之前的空白灰色框。新的調試密鑰庫是否意味着新的Map API密鑰?

這是否意味着我必須獲得全新的Map API密鑰,因爲應用程序簽名已更改?

P.S.該應用程序在此之前工作得很好,因此我已獲得所有必要的用途 - 庫權限等

感謝

編輯

探聽一些關於我已經回答了我的問題,但之後當我試圖得到一個新的API密鑰告訴我密鑰庫文件不存在。我認爲,當它被刪除時,另一個是自動重建/重新創建。是什麼賦予了?

+0

是的,這意味着你需要一個新的Google Maps API密鑰 – NickT

+0

Aleks G原諒我,如果我忘記了網站的工作原理,也如果你不想給予至少一個建設性的答覆,那麼不要給一個在所有。 – Katana24

+0

是的,請接受一個答案 - 如果你已經回答了你自己的問題,然後張貼它作爲一個答案,而不是一個評論,並接受:) –

回答

4

有一個調試密鑰庫和簽名應用程序的密鑰庫。密鑰庫文件位於隱藏的.android目錄中(在Mac上,位於用戶目錄中)。

Google地圖僅適用於SIGNED APK。那麼調試密鑰庫不相關。

創建一個簽名的APK。請非常確定地爲您爲此APK創建的密鑰庫進行備份;除非使用相同的密鑰庫進行簽名,否則無法將更新發布到Android電子市場。

從該密鑰庫文件生成哈希,獲取您的API密鑰,並在應用程序中使用該密鑰。即使這樣,如果你只是直接從Eclipse運行你的應用程序,你將不會看到地圖,只有灰色地帶......你必須將已簽名的APK加載到你的手機上,然後安裝它,然後它應該可以工作。希望這可以幫助!

+0

您的意思是說,每個應用程序都繼承了用戶特定的簽名 - 此簽名存儲在應用程序的密鑰庫中,並且它是在設備和仿真器上運行所必需的而調試密鑰庫僅用於調試目的,密鑰庫用於在傳遞給java時生成Google地圖API密鑰 – Katana24

+1

「Google地圖僅適用於SIGNED APK。調試密鑰庫與此無關。「< - 我認爲這是不正確的。」 請參閱以下內容:http://code.google.com/android/add-ons/google-apis/mapkey.html#getdebugfingerprint 您可以使用此過程獲取調試證書的Google Maps API密鑰,從而允許在調試版本中正確加載地圖切片 – StephenT

+0

好的,斯蒂芬,我沒有意識到這一點,對我而言,生成一次API密鑰,然後僅包裝一個簽名的APK,但很高興知道可以生成單獨的調試API密鑰。 –

1

這是否意味着我必須獲得全新的Map API密鑰,因爲應用程序簽名已更改?

是的。您使用原始簽名密鑰的MD5指紋來獲取Map API密鑰。您需要按照相同的步驟註冊新的MD5指紋並獲取相應的Map API密鑰。

經過一些探索後,我回答了我自己的問題,但是當我嘗試獲得新的API密鑰時,它告訴我密鑰庫文件不存在。我認爲,當它被刪除時,另一個是自動重建/重新創建。

它將在您的下一個版本。確保你正在尋找正確的地方。

+0

我應該在哪裏看 - 然後隱藏.android文件在用戶位置下?或者在android.sdk中,在用戶位置可見? – Katana24

+0

@ Katana24:「我應該在哪裏看 - 然後隱藏起來。用戶位置下的android文件?「 - 這當然是我期望找到它的地方。如果你使用Eclipse,它使用的調試密鑰存儲位置可以在首選項|安卓|編譯中找到。 – CommonsWare

+0

歡呼信息CommonsWare。找到了我想要的,並設法生成一個新的Map API密鑰:D – Katana24