0

Microsoft Health 应用程序的最新更新似乎破坏了与 SDK 预览的向后兼容性,导致 Android 开发出现类似于以下错误:

04-28 20:02:09.001    8840-9755/org.hackerforhire.msbandlight E/AndroidRuntime﹕ FATAL EXCEPTION: f
    Process: org.hackerforhire.msbandlight, PID: 8840
    java.lang.RuntimeException: Parcel android.os.Parcel@1d1d95f2: Unmarshalling unknown type code 40 at offset 368
            at android.os.Parcel.readValue(Parcel.java:2228)
            at android.os.Parcel.readArrayMapInternal(Parcel.java:2485)
            at android.os.BaseBundle.unparcel(BaseBundle.java:221)
            at android.os.Bundle.getParcelable(Bundle.java:755)
            at com.microsoft.band.f.d(SourceFile:820)
            at com.microsoft.band.f.d(SourceFile:40)
            at com.microsoft.band.f$d.a(SourceFile:892)
            at com.microsoft.band.internal.e$3.handleMessage(SourceFile:137)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at com.microsoft.band.internal.e.run(SourceFile:148)

我以前认为这是每个堆栈溢出的 ProGuard 规则的问题;但是,这没有任何影响。

在这一点上,我真的很想看看是否有人可以提出一个深入库 JAR 的好方法,看看是否有一些我可以手动修补的东西来让事情正常工作。有没有这样的事情,或者最好只是希望微软很快会发布一个新的 SDK?

版本信息:

  • 微软健康版:1.3.10427.2
  • 微软手环 SDK 版本:1.3.10215.1
  • 微软手环固件版本:10.2.2810.0 09 R
  • 安卓版本:5.1 (Nexus 6)

2015-04-30 更新:确认最新版本的 SDK ( 1.3.10428.1) 解决了此问题。

4

1 回答 1

0

恐怕我没有解决方案,但可以确认问题。我今天遇到了同样的问题。我的 Xamarin.Forms Android 版本与 Microsoft Band 的接口昨天运行良好。现在它已经死了——对 BandClient.ConnectTaskAsync() 的调用永远不会完成。甚至示例应用程序也无法连接。

我的应用程序正在使用:

  • Microsoft.Band.Android 1.3.10215.1
  • Microsoft.Band.Portable 1.0.0.0

我正在使用 Microsoft Band 固件版本:10.2.2810.0 09 R 在运行 Android 4.4.4 的摩托罗拉 Moto E 上进行测试

调试器(来自示例应用程序)的输出如下: FATAL EXCEPTION: f Process: Microsoft.Band.Sample, PID: 9382 java.lang.RuntimeException: Parcel android.os.Parcel@4193eec8: Unmarshalling unknown type code 3473459 at offset 344 at android.os.Parcel.readValue(Parcel.java:2080) at android.os.Parcel.readSparseArrayInternal(Parcel.java:2363) at android.os.Parcel.readSparseArray(Parcel.java:1735) at android.os.Parcel.readValue(Parcel.java:2070) at android.os.Parcel.readArrayMapInternal(Parcel.java:2313) at android.os.Bundle.unparcel(Bundle.java:249) at android.os.Bundle.getParcelable(Bundle.java:1206) at com.microsoft.band.f.d(SourceFile:820) at com.microsoft.band.f.d(SourceFile:40) at com.microsoft.band.f$d.a(SourceFile:892) at com.microsoft.band.internal.e$3.handleMessage(SourceFile:137) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at com.microsoft.band.internal.e.run(SourceFile:148) CURRENT freed 23K, 17% free 36752K/43852K, paused 4ms+23ms, total 113ms Activity microsoft.band.sample.MainActivity has leaked ServiceConnection com.microsoft.band.f$1@41aa1438 that was originally bound here android.app.ServiceConnectionLeaked: Activity microsoft.band.sample.MainActivity has leaked ServiceConnection com.microsoft.band.f$1@41aa1438 that was originally bound here at com.micros04-29 17:21:27.607 E/ActivityThread( 9382): at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:979) at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:873) at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1690) at android.app.ContextImpl.bindService(ContextImpl.java:1673) at android.content.ContextWrapper.bindService(ContextWrapper.java:517) at com.microsoft.band.f.f(SourceFile:330) at com.microsoft.band.a.connect(SourceFile:106) at mono.android.view.View_OnClickListenerImplementor.n_onClick(Native Method) at mono.android.view.View_OnClickListenerImplementor.onClick(View_OnClickListenerImplementor.java:29) at android.view.View.performClick(View.java:4456) at android.view.View$PerformClick.run(View.java:18465) at android.os.Handler.handleCallback(Handler.java:733) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5086) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) at dalvik.system.NativeStart.main(Native Method)

于 2015-04-29T16:27:38.407 回答