我将我的应用升级为使用Google Services 7.0。之后,我开始看到数百个相同异常的报告,如下面的堆栈跟踪所示。主要来自Android 2.3设备。在升级之前,我还没有收到任何此类例外的报告。并且没有改变与唤醒锁相关的任何内容,我将其用于服务。在更改之前,我使用的是Google Analytics v3。现在我使用的是谷歌服务附带的v4。
java.lang.RuntimeException: WakeLock under-locked Analytics WakeLock
at android.os.PowerManager$WakeLock.release(PowerManager.java:307)
at android.os.PowerManager$WakeLock.release(PowerManager.java:282)
at android.os.PowerManager$WakeLock$1.run(PowerManager.java:202)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3687)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
at dalvik.system.NativeStart.main(Native Method)
对可能发生的事情有所了解?
附录:我添加了以下内容,如Google Analytics文档中所述:
<!-- Enable background dispatching to improve delivery on non-Google Play devices -->
<receiver
android:name="com.google.android.gms.analytics.AnalyticsReceiver"
android:enabled="true">
<intent-filter>
<action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH"/>
</intent-filter>
</receiver>
<service
android:name="com.google.android.gms.analytics.AnalyticsService"
android:enabled="true"
android:exported="false"/>
现在,我删除它,似乎异常消失了。我想了解。
答案 0 :(得分:0)
我能找到您问题的唯一正当理由是, **Analytics needs network to send your hits. The optional wake lock permission help with reliable dispatching**
。
为了确保Google能够在运行2.3及更早版本的设备中跟踪GCM中的崩溃,他们会强制您添加Google Analytics权限。