- Home /
[4.6.7] Occasionally freeze on Android when using coroutine + www and UnityMain thread in "wait" state
Our game occasionally freeze on Android devices, when calling a WWW with coroutines. Yes, the issue happens when we try to call a WWW (but not every time) The problem was never found on iOS devices. When the issue happens, the whole screen will freeze for quite a few minutes while the music continues to play。And eventually, it will recover!! Yes, it recovers!! After the several minutes freezing, the game will continue to run like nothing happened.
We tried to attach ADT to our process, and found that when the issue happens, the thread UnityMain is always in "wait" state, with a stack trace as below:
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:364)
at java.lang.Thread.join(Thread.java:748)
at com.unity3d.player.UnityPlayer.nativeRender(Native Method)
at com.unity3d.player.UnityPlayer.a(Unknown Source)
at com.unity3d.player.UnityPlayer$b.run(Unknown Source)
We have been stuck at this issue for weeks...what could be the possible causes?
Answer by phaem · Jul 08, 2015 at 10:18 AM
Looks like the WWW works in synchronous manner on Android devices which makes application thread wait until network request is completed. Try to attach network sniffer and see what is going on the network during the lag. There are different ways to solve it. You can create your own thread for making network requests. But this drives you into synchronization issues. You can also use *Async networking methods from the .NET Framework or go along with those guys, who written their own async request maker and published it in unity wiki here http://wiki.unity3d.com/index.php/WebAsync using IAsyncResult and the ThreadPool.
Thanks for the hint! We have taken some actions immediately to replace WWW with alternative solutions and the issue is gone. Although I don't know why WWW is causing this but I think this is the right direction. We'll continue to monitor this issue for a while longer.
Your answer
Follow this Question
Related Questions
Scene View Problems 0 Answers
Unity Crash Problem 3 Answers
Camera freezes when in bone hierarchy 1 Answer
particle system 0 Answers
Placing objects on a grid 2 Answers