我能够在Android工作室成功构建一个release-apk。
我的应用程序使用Google提供的一些服务,例如Google App Invites和Google Places for Android。
要获得这些服务,我必须在google开发者控制台上注册一个API密钥,如下所示:
我不确定获取API密钥的软件包名称和SHA-1指纹部分。
如果我同时拥有我的应用程序的调试版本和发行版本(让我们说包名称是com.myapp),我是否将com.myapp作为包名称输入两次,但是设置了版本和分别为每个包名调试SHA-1?
所以:
com.myapp (SHA-1 fingerprint) S1:2D:3F etc
com.myapp (SHA-1 fingerprint) D2:1W:2V etc
我试图这样做,但到目前为止,应用程序的发布版本似乎根本不想工作。
APP_INVITE说:
找不到包名com.myapp的Android客户端ID。 (APPINVITE_CLIENT_ID_ERROR)
PLACES AUTOCOMPLETE说:
获取自动填充预测API调用时出错: 状态{statusCode = PLACES_API_INVALID_APP,resolution = null}
答案 0 :(得分:1)
这有点令人困惑,我认为摆脱这种情况的最佳解决方案是添加applicationIdSuffix
,以便您(和任何其他服务)可以区分构建:com.myapp.beta
用于构建和com.myapp
发布。
我建议你看看这个详细的教程:http://medyo.github.io/2015/different-android-app-resources-gradle-build-type/
希望能回答你的问题
答案 1 :(得分:0)
好的 - 经过一些调查,是的,您确实将您的包名称放了两次,然后分别为发布和调试版本放置了SHA-1指纹。这将使PLACES发挥作用。
此外,根据我的调查,我注意到APP_INVITE错误指向找不到包的客户端ID。请注意,这是指您的OAuth 2.0客户端ID,可在Google Developer Console中的API密钥下找到。更改SHA-1密钥(在这种情况下没有选项可以放入开发SHA-1和debud SHA-1)将导致APP_INVITE正常工作。