Google PlacePicker在使用resultCode 2

时间:2015-07-06 10:49:13

标签: android google-places-api

在我的项目中PlacePicker工作正常但今天突然在使用resultCode 2启动后立即关闭。

这是logcat输出

07-06 16:06:36.596   1023-20519/? W/Places﹕ e.a:638: gLocReplyElement
unsuccessful status: 1

07-06 16:06:36.596   1023-20519/? W/Places﹕ e.a:665: gPlaceQueryResult
unsuccessful responseCode: 26

07-06 16:06:36.596  21086-21708/? E/PlacePicker﹕
PLACES_API_QUOTA_FAILED

有什么想法吗? PLACES_API_QUOTA_FAILED错误代码是什么意思?

3 个答案:

答案 0 :(得分:2)

假设您启用了适用于Android的Place API并且您的清单中正确配置了您的API密钥,如果您在开发人员控制台中缺少SHA-1证书指纹,也可能会发生这种情况。因此,请确保涵盖以下内容:

  1. 在开发人员控制台中,确保为Android应用生成了API密钥,并确保在清单文件中输入了API密钥。它应该是嵌套在应用程序标记内的元标记。

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
              package="com.my.awesome.app">
        <application>
            <meta-data
                android:name="com.google.android.geo.API_KEY"
                android:value="AIza..."/>
            ... other stuff
        </application>
    </manifest>
    
  2. 在与API密钥相同的页面上,您需要在清单和证书中输入包名称。在开发/调试模式下,您可以使用工作室提供的调试密钥库中的证书,但是,对于发布版本,您必须生成自己的密钥库。
  3. 为调试模式生成keyhash:

    keytool -exportcert -alias androiddebugkey -keystore C:\Users\{username}\.android\debug.keystore -list -v
    

    相同的命令用于发布版本,但这次您需要指向自己的密钥库。

    More info here

答案 1 :(得分:0)

有关错误代码的信息,请参阅here ...它现在可能会抛出更好的错误,但这通常意味着API控制台中的证书指纹出现问题。

我们遇到了类似的问题(PlacePicker立即关闭结果代码2,除了我们没有任何相关的控制台输出)。我们最终修复了我们的问题,删除所有指纹以使其正常工作,然后慢慢添加安全性:

  • 删除Google API控制台凭据部分中api密钥页面上“限制对Android应用的使用”下的所有条目
  • 在同一个关键页面上,点击顶部的“重新生成密钥”(是的 - 这实际上是我们需要的@ _ @ ...您可以在执行此操作之前再次尝试旧密钥)
  • 使用新密钥测试您的应用

如果PlacePicker现在正在运行,请尝试重新添加安全性:

https://developers.google.com/maps/documentation/android-api/signup

其他信息

  • 我们的设备运行的是Android API级别23(Android 6.0)

  • 我们的应用/模块级build.gradle正在使用:

    compile 'com.google.android.gms:play-services-maps:9.0.0'
    compile 'com.google.android.gms:play-services-gcm:9.0.0'
    compile 'com.google.android.gms:play-services-location:9.0.0'
    
  • 我们的项目级别build.gradle正在使用:

    classpath 'com.google.gms:google-services:3.0.0'
    

    ```

答案 2 :(得分:-3)

适用于Android的Google Places API会强制默认限制为每24小时1 000个请求。如果您的应用超出限制,应用将开始失败。

您可以在此处找到完整的说明   https://developers.google.com/places/android/usage