【问题标题】:Caught a RuntimeException from the binder stub implementation从活页夹存根实现中捕获了一个 RuntimeException
【发布时间】:2015-11-17 00:32:52
【问题描述】:

我遇到了这个 RuntimeException 并且很难调试它:

W/Binder﹕ Caught a RuntimeException from the binder stub implementation.
com.google.android.gms.common.internal.safeparcel.zza$zza: Expected object header. Got 0x1 Parcel: pos=136 size=284
        at com.google.android.gms.common.internal.safeparcel.zza.zzJ(Unknown Source)
        at com.google.android.gms.wearable.internal.zzf.zzfv(Unknown Source)
        at com.google.android.gms.wearable.internal.zzf.createFromParcel(Unknown Source)
        at com.google.android.gms.wearable.internal.zzah$zza.onTransact(Unknown Source)
        at android.os.Binder.execTransact(Binder.java:446)

它似乎没有指定异常的来源。这是一款 Android Wear 应用程序,可定期录制音频并将其传输到手机。

对于我应该在哪里查看或应该如何调试它的任何想法,我将不胜感激。

谢谢。

【问题讨论】:

  • 我遇到了同样的错误。你找到解决办法了吗?
  • 尝试将设备上的 GogglePlayService 升级到最新版本。希望能解决问题。记得在运行之前清理你的项目
  • 有没有人找到解决这个问题的方法。当我重新启动 android wear 应用程序时会发生这种情况:(
  • 听起来像是发送数据(通过活页夹)的应用程序和接收数据的应用程序之间的版本不匹配。
  • Android 存根实现是一段代码,它应该可以在其他地方找到,但它是编译代码所必需的。存根本身是一个占位符,它只会抛出一个异常,因为它永远不应该被实际使用。找出为什么调用存根而不是实际代码。上面提到的版本不匹配似乎很可能,因为这样代码将编译,但在运行时只会找到并执行存根。如果我在这里错了,请纠正我。

标签: java android wear-os


【解决方案1】:

我在使用 Google Fit History API 进行数据传输时遇到了类似的错误。在那种情况下,它是一个失败的 binder Transaction (JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = ...))。它没有使应用程序崩溃,但数据传输不起作用。为我解决的问题是减少了一次发送的数据量。我现在要做的是以多个更小的块发送数据。

要从可穿戴设备向手机发送大量数据,您可能需要使用Channel API。我用它来传输大小从 5MB 到 10MB 的 MP3 文件没有任何问题。

【讨论】:

    猜你喜欢
    • 2015-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    相关资源
    最近更新 更多