2014-11-03 121 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