2016-07-10 2 views
2

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

Я следил за руководством и предоставлял услуги по информированию в консульстве 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 services и возврат 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) 
+0

Я столкнулся с той же проблемой. Производственная сборка _sometime_ сбой с той же ошибкой. Вы нашли причину? – Nifhel

ответ

1

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

1

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

+0

Да, думал об этом, но нет ничего особенного в том, что sh1 приложения испугался. – Dus

+0

Вы используете режим отладки или выпуска? – user3166372

+0

релиз и подписанный – Dus

-1

Включить Апи Awareness из консоли разработчиков, и он будет работать нормально

1

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

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

1

Немного другой сценарий в моем случае. У меня было 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 в файле манифеста, после чего проблема была решена.

Смежные вопросы