我在 onCreate() 時去 new Socket(strIP, 27015) 卻發生 NullPointerException。
strIP 明明就不是 null pointer,傳進去後卻莫名變成 null 了。
在網路上也找不到相關的資料,索性試著將 new Socket 一行移至 OnClick(),
這時跑出了另一個 NetworkOnMainThreadException,於是讓我找到了相關的文章。
根據 Why Ice Cream Sandwich Crashes Your App 這篇文章的說明,Android 3.0 以上
不允許在 UI thread 裡做以下的運算:
- Opening a Socket connection (i.e. new Socket()).
- HTTP requests (i.e. HTTPClient and HTTPUrlConnection).
- Attempting to connect to a remote MySQL database.
- Downloading a file (i.e. Downloader.downloadFile()).
沒有留言:
張貼留言