2014-11-03 120 views
0

我剛剛完成了我的第一個使用Maps API和Maps Fragment的應用程序。 一切工作正常與調試,所以我決定做一個簽名的apk。 要讓已簽名的apk與Maps API協同工作,我需要新的密鑰。這裏是我試了一下:Maps API發佈密鑰無效

1)生成APK簽署

2)創建一個新的密鑰存儲文件與此apk創建成功結束.jks

3)(此APK不還包含新的密鑰)

Configuration on demand is an incubating feature. 
:app:preBuild 
:app:preReleaseBuild 
:app:checkReleaseManifest 
:app:preDebugBuild 
:app:prepareComAndroidSupportAppcompatV72100Library UP-TO-DATE 
:app:prepareComAndroidSupportSupportV42100Library UP-TO-DATE 
:app:prepareComGoogleAndroidGmsPlayServices6171Library UP-TO-DATE 
:app:prepareReleaseDependencies 
:app:compileReleaseAidl 
:app:compileReleaseRenderscript 
:app:generateReleaseBuildConfig 
:app:generateReleaseAssets UP-TO-DATE 
:app:mergeReleaseAssets 
:app:generateReleaseResValues UP-TO-DATE 
:app:generateReleaseResources 
:app:mergeReleaseResources 
:app:processReleaseManifest 
:app:processReleaseResources 
:app:generateReleaseSources 
:app:compileReleaseJava 
:app:lintVitalRelease 
:app:compileReleaseNdk 
:app:preDexRelease 
:app:dexRelease 
:app:processReleaseJavaRes UP-TO-DATE 
:app:validateExternalOverrideSigning 
:app:packageRelease 
:app:zipalignRelease 
:app:assembleRelease 

BUILD SUCCESSFUL 

Total time: 1 mins 57.752 secs 

4)我使用keytool從.jks密鑰庫文件

5)我去API網站收到SHA1和產生新的密鑰同一項目作爲一個我進入調試關鍵

6)我一鍵搞定

6.1)奇,它只是說,「關鍵Android應用程序」而不是「關鍵Android應用程序(帶證書)」因爲它是書面的地圖API

7)的文檔中,我把新鑰匙插入其中使用的調試關鍵坐

8場),我再次生成一個簽名的apk(與輸入密碼密鑰庫和別名)

8.1)相同的日誌輸出,無異常

9)我的設備

10)上安裝的apk的地圖瓦片不加載

我一再閱讀文檔,但我可以而她不知道我在哪裏做了一個錯誤

任何幫助是極大的讚賞

回答

0

你需要把SHA1從您的密鑰存儲到應用程序允許的名單在API控制檯項目。

從google APIs控制檯網頁中,在下拉菜單中選擇您的項目。然後點擊API訪問。從那裏,你應該是一個按鈕,上面寫着「編輯允許的Android應用程序」。點擊它,你會看到一些關於怎麼做的說明。

+0

謝謝,但這就是我在第5步和第6步中所做的。我嘗試爲SHA1生成一個新密鑰,並嘗試將SHA1添加到允許的應用程序列表中,如剛剛描述的那樣,與調試版一起使用。 – user3443786 2014-11-03 02:29:43

+0

您是否已將新密鑰添加到AndroidManifest? – kmdupr33 2014-11-03 12:20:56

+0

我發現了什麼導致了錯誤。在Android Studio中自動創建的地圖活動中,Key從資源文件「values/google_maps_api.xml」中導入到清單中。當我替換它時,出於某種原因,我沒有將它導入發佈版本。我現在將密鑰硬編碼到清單中,現在它可以工作:-)非常感謝您的幫助 – user3443786 2014-11-03 13:48:23