2016-07-10 8 views
2

Ich versuche mit Google Awareness API zu arbeiten und Instanz von GoogleApiClient Awareness API zu registrieren, aber ich erhalte einen Fehler, den ich nirgendwo finden kann.Fehler beim Versuch, eine Verbindung mit Google Awareness Services herzustellen

Ich habe das Handbuch gelesen und Awareness-Services in der API-Consulate aktiviert. Diese https://developers.google.com/awareness/android-api/get-started

ist, wie mein Manifest aussieht:

<?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> 

Sehr einfache Anmeldung:

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

Dies ist der Fehler Ich erhalte - Ungültige API-Schlüssel für Paket = com.test .awarenesstests .Status code received = 6

Beachten Sie, dass am Anfang des Protokolls etwas seltsam ist, zu dem ein Ping gemacht wird Google-Dienste und 403 zurückgibt, sieht es im Zusammenhang mit dem endgültigen Fehler.

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

Ich bin mit dem gleichen Problem konfrontiert. Ein Produktions-Build _sometime_ stürzt mit demselben Fehler ab. Hast du die Ursache gefunden? – Nifhel

Antwort

1

Ich hatte das gleiche Problem. Überprüfen Sie die applicationId in Ihrer Anwendung build.gradle Datei. Für mich waren die applicationId und der Paketname, die ich auf console.developers.google.com unter meinem API-Schlüssel eingestellt habe, nicht identisch. Ich denke, sie müssen gleich sein. Nach der Festlegung der Namen funktionierte es für mich. Ich hoffe, es wird für dich funktionieren.

1

Das einzige, was Sie aus dem StackTrace lesen können, ist, dass Ihr API-Key nicht akzeptiert wird. Also bekommst du ein 403-Verbot. Hast du den API-Schlüssel richtig erzeugt? Vielleicht ist dein SHA1-Fingerabdruck nicht der richtige?

+0

ja, dachte darüber nach, aber es gibt nichts besonderes an der SH1 der App ich habe Angst. – Dus

+0

verwenden Sie den Debug- oder Release-Modus? – user3166372

+0

Freigabe und signiert – Dus

-1

das Bewusstsein Api von der Konsole Entwickler aktivieren und es wird

1

Dies ist ein bekannter Fehler funktionieren. Wenn GoogleApiClient in connect() einen Netzwerkfehler feststellt, wird eine SecurityException ausgelöst.

Extrem ärgerlich, aber Sie nichts falsch machen (solange Sie die richtigen Schlüssel verwenden)

1

Etwas anderes Szenario in meinem Fall. Ich hatte 3 Build-Varianten

  • Entwicklung
  • Staging
  • Produktion

So hatte ich 3 separate Google-services.json für je 3 Varianten. Zusammen mit diesem hatte ich den folgenden Code in Manifest mit dem Entwickler-API-Schlüssel gebracht.

<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" /> 

Als ich apk mit Produktionsumgebung signierte, bekam ich den gleichen Fehler. Die App nahm den API-Schlüssel von AndroidManifest.xml anstelle von google-services.json.

Also habe ich den API-Schlüssel in der Manifest-Datei auskommentiert, dann wurde das Problem gelöst.