I am not sure whether I should report this as a big of Mobile Module, so post it here and see if anybody else encounters the same issue.
When create a mobile VI, if you put a TCP Connection control and String array on the front panel the same time, it won't run. It compiles and deploys all fine, but when you try to run it, it doesn't. And if you put it as a subVI, it will stuck when it is called.
Guess I am lucky. Just so happened that I needed to put both controls on the front panel and ran it as a subVI. Every time this subVI was called, the whole program stopped. It is a simple subVI call, but maybe it is so simple that it becomes so hard to debug. I started to check if the memory was full, then subVI property, and then put all kinds of breakpoints to debug. Finally, just when I ran out of debugging ideas, I was looking at all the controls on the front panel. Is it possible that one of those controls has some sort of conflicts with others, or the mobile module simply cannot load the type of control(s). So, I took one out at a time.
It took me a whole morning, but that's how I found this bug. I hope after I post it here, it can save your time to debug this type of bugs.