在升級到最新版本的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,調試過程不會被附加。 –