【问题标题】:IOException while requesting key: Invalid device key response请求密钥时出现 IOException:设备密钥响应无效
【发布时间】:2018-05-04 06:02:28
【问题描述】:

我正在使用带有 google IOT 的 Pi 3 来操作一些控制灌溉系统阀门的继电器。该系统使用互联网获取天气预报来计算用水量,并使用 NanoHTTPD 提供 UI。

它运行良好,但有时我会收到一个错误,导致整个过程停止。从日志文件中:

05-04 05:26:14.677 737-1077/com.google.android.gms.persistent W/Conscrypt: Could not set socket write timeout:
05-04 05:26:14.678 737-1077/com.google.android.gms.persistent W/Conscrypt:    java.lang.reflect.Method.invoke(Native Method)
       com.google.android.gms.org.conscrypt.Platform.setSocketWriteTimeout(:com.google.android.gms@11973330:13)
05-04 05:26:14.798 737-1077/com.google.android.gms.persistent W/Conscrypt: Could not set socket write timeout:
05-04 05:26:14.799 737-1077/com.google.android.gms.persistent W/Conscrypt:    java.lang.reflect.Method.invoke(Native Method)
       com.google.android.gms.org.conscrypt.Platform.setSocketWriteTimeout(:com.google.android.gms@11973330:13)
05-04 05:26:14.914 737-1077/com.google.android.gms.persistent W/GLSUser: [AppCertManager] IOException while requesting key: 
    java.io.IOException: Invalid device key response.
        at fmk.a(:com.google.android.gms@11973330:12)
        at fmk.a(:com.google.android.gms@11973330:64)
        at fmi.a(:com.google.android.gms@11973330:8)
        at fme.a(:com.google.android.gms@11973330:1)
        at fmd.a(:com.google.android.gms@11973330:10)
        at com.google.android.gms.auth.account.be.legacy.AuthCronChimeraService.b(:com.google.android.gms@11973330:7)
        at ers.call(:com.google.android.gms@11973330:3)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at kfr.run(:com.google.android.gms@11973330:26)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
        at kku.run(Unknown Source:7)
        at java.lang.Thread.run(Thread.java:764)

我很感激有关如何阻止这种情况发生的提示。

谢谢。

【问题讨论】:

    标签: ioexception


    【解决方案1】:

    简单。这意味着与 IOT 服务关联的 Google 控制台上的密钥与本地存储在您的 Mac/Pi 3 上的密钥不匹配。

    只需运行: keytool -list -v -keystore <your keystore> -storepass <your store password> 并将SHA1SHA256 下的密钥复制到Google 控制台。

    如果keytool -genkeypair 不存在,您可以创建keystore

    对于其他有用的命令运行keytool -h

    【讨论】: