Ошибка при попытке подключения к сервисам Google Awareness

Я пытаюсь работать с API осведомленности Google и регистрирую экземпляр GoogleApiClient на API осведомленности, но получаю ошибку, которую нигде не могу найти.

Я следовал этому руководству и включил информационные службы в API-интерфейсе.https://developers.google.com/awareness/android-api/get-started

Вот так выглядит мой манифест:

<?xml version="1.0" encoding="utf-8"?>
  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.test.awarenesstests">

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION" />
    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainActivity"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

       <meta-data
        android:name="com.google.android.awareness.API_KEY"
        android:value="MY_KEY_GENERATED_IN_THE_DEVELOPER_CONSULE" />
    </application>

</manifest>

Очень простая регистрация:

 GoogleApiClient googleApiClient = new GoogleApiClient.Builder(this)
                .addApi(Awareness.API).build();
 googleApiClient.connect();

Это ошибка, которую я получаю - Неверный ключ API для пакета = com.test.awarenesstests. Код полученного статуса = 6

Обратите внимание, что в начале журнала есть что-то странное, в сервисы Google сделан пинг, и после возврата 403 это выглядит как связанная с последней ошибкой.

07-10 15:35:50.745 29260-29490/? E/Volley: [6925] BasicNetwork.performRequest: Unexpected response code 403 for https://www.googleapis.com/usercontext/v1/controllerhub/ping
07-10 15:35:50.750 29260-29260/? E/ctxmgr: [BaseServerTask]Server task (PingTask) got error response.
                                           com.android.volley.AuthFailureError
                                               at com.android.volley.toolbox.BasicNetwork.performRequest(:com.google.android.gms:159)
                                               at ipb.performRequest(:com.google.android.gms:64)
                                               at com.android.volley.NetworkDispatcher.run(:com.google.android.gms:113)
07-10 15:35:50.755 29260-15589/? W/ctxmgr: [ContextManager3PCredentialsVerifier]Received a failed ping response with status code = 6
07-10 15:35:50.755 29260-29275/? E/AbstractServiceBroker: Getting service failed
                                                          java.lang.SecurityException: Invalid API Key for package = com.test.awarenesstests .Status code received = 6
                                                              at bti.a(:com.google.android.gms:109)
                                                              at btl.a(:com.google.android.gms:5046)
                                                              at iht.a(:com.google.android.gms:592)
                                                              at ikn.onTransact(:com.google.android.gms:824)
                                                              at android.os.Binder.execTransact(Binder.java:446)
07-10 15:35:50.756 9603-9603/com.test.awarenesstests D/AndroidRuntime: Shutting down VM
07-10 15:35:50.757 9603-9603/com.test.awarenesstests E/AndroidRuntime: FATAL EXCEPTION: main
                                                                       Process: com.test.awarenesstests, PID: 9603
                                                                       java.lang.SecurityException: Invalid API Key for package = com.test.awarenesstests .Status code received = 6
                                                                           at android.os.Parcel.readException(Parcel.java:1546)
                                                                           at android.os.Parcel.readException(Parcel.java:1499)
                                                                           at com.google.android.gms.common.internal.zzu$zza$zza.zza(Unknown Source)
                                                                           at com.google.android.gms.common.internal.zzd.zza(Unknown Source)
                                                                           at com.google.android.gms.internal.zzqb$zzc.zzapi(Unknown Source)
                                                                           at com.google.android.gms.internal.zzqb$zzf.run(Unknown Source)
                                                                           at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
                                                                           at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                           at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
                                                                           at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
                                                                           at com.google.android.gms.internal.zzrs.run(Unknown Source)
                                                                           at java.lang.Thread.run(Thread.java:818)
 Nifhel18 авг. 2016 г., 13:55
Я сталкиваюсь с той же проблемой. Построение производствакогда-то сбой с той же ошибкой. Вы нашли основную причину?

Ответы на вопрос(4)

Решение Вопроса

Я была такая же проблема.Проверьте ApplicationID в вашем приложенииbuild.gradle файл. Для меня applicationId и имя пакета, которое я установил на console.developers.google.com в своем ключе API, не совпадали. Я думаю, они должны быть одинаковыми. После исправления имен это сработало для меня. Я надеюсь, что это будет работать для вас.

Немного другой сценарий в моем случае. У меня было 3 варианта сборки

развитиеинсценировкапроизводство

Таким образом, у меня было 3 отдельных google-services.json каждый на 3 варианта. Наряду с этим я поместил приведенный ниже код в манифест с ключом API разработки.

 <meta-data
          android:name="com.google.android.awareness.API_KEY"
          android:value="<API_KEY_OF_DEVELOPMENT_ENVIRONEMT>" />
 <meta-data
          android:name="com.google.android.geo.API_KEY"
          android:value="API_KEY_OF_DEVELOPMENT_ENVIRONEMT" />

Когда я сделал подписанный apk с производственной средой, я получил ту же ошибку Приложение получало ключ API из AndroidManifest.xml вместо google-services.json.

Поэтому я закомментировал ключ API в файле манифеста, и проблема была решена.

Это известная ошибка. Когда GoogleApiClient обнаруживает сетевую ошибку вconnect()это вызывает исключение SecurityException.

Очень раздражает, но вы не делаете ничего плохого (если вы используете правильный ключ)

Единственное, что вы можете прочитать из стековой трассировки, это то, что ваш API-ключ не принят. Таким образом, вы получаете 403-запрещено. Вы сгенерировали api-ключ правильно? Может быть, ваш отпечаток SHA1 не подходит?

 Dus11 июл. 2016 г., 08:15
да .. это верно
 user316637211 июл. 2016 г., 11:17
Может быть, это проблема?developers.google.com/android/reference/com/google/android/gms/...
 user316637211 июл. 2016 г., 01:27
и вы использовали выпущенный подписанный также для генерации API-ключа?
 Dus10 июл. 2016 г., 18:00
освободить и подписать
 Dus10 июл. 2016 г., 16:55
да, думал об этом, но я ничего не боюсь в sh1 приложения.
 user316637210 июл. 2016 г., 16:58
Вы используете режим отладки или выпуска?

Ваш ответ на вопрос