在升级到最新版本的Parse Android SDK后,我的一些用户遇到了应用程序显示黑屏并最终显示ANR并退出的问题。我能得到的ANR traces.txt,发现这样的:在LauncherActivity解析Android SDK ParseUser.getCurrentUser()ANR
ParseUser user = ParseUser.getCurrentUser();
:
"main" prio=5 tid=1 WAIT
| group="main" sCount=1 dsCount=0 obj=0x41c1dea0 self=0x41c09768
| sysTid=31669 nice=-11 sched=0/0 cgrp=apps handle=1074811220
| state=S schedstat=(0 0 0) utm=130 stm=12 core=1
at java.lang.Object.wait(Native Method)
- waiting on <0x427b26a8> (a java.lang.Object)
at java.lang.Object.wait(Object.java:364)
at bolts.Task.waitForCompletion(Task.java:132)
at com.parse.ParseTaskUtils.wait(ParseTaskUtils.java:29)
at com.parse.ParseUser.getCurrentUser(ParseUser.java:906)
at com.parse.ParseUser.getCurrentUser(ParseUser.java:893)
at com.ourapp.activities.LauncherActivity.onCreate(LauncherActivity.java:38)
at android.app.Activity.performCreate(Activity.java:5458)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2376)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2470)
at android.app.ActivityThread.access$900(ActivityThread.java:174)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1307)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5593)
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:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
at dalvik.system.NativeStart.main(Native Method)
这发生在通话结束后。
这只发生在先前经过身份验证的用户以及关闭并重新启动应用程序之后。如果他们有全新的安装(或清除数据),它不会发生。就操作系统版本和设备而言,它有很大的不同,但我可以每次使用运行4.4.2 KitKat的三星Galaxy S4 Mini(GT-I9190)以及三星Galaxy S4(GT-I545)进行重现,运行4.4.2 KitKat。虽然我看到用户报告了各种制造商以及前棒棒糖和棒棒糖的问题。
任何想法??
我已经搜索了他们的GitHub的已知问题,甚至没有运气搜索Parse Discussion Google Group。 (我已经在该组中发布了相同的问题)
FWIW - 跟踪的是,bolts.Task.waitForCompletion阻止其在主线程....所以 - > ANR ...你的猴子与客户端和服务器端的会话状态和任何的周围排列进场调和上述“getCurrentUser()”的范围,即尝试可能重现错误差异连击? –
不幸的是,我还没有能够在这些设备上进行调试。大概是因为ANR,调试过程不会被附加。 –