[Android] RuntimeException on AsyncTask : NullPointerException on doInBackground
Android アプリで、AsyncTask を実行中に RuntimeException が発生して、クラッシュするバグの解決方法をメモ。
"Thread: AsyncTask #5, Exception: java.lang.RuntimeException: An error occured while executing doInBackground()
  at android.os.AsyncTask$3.done(AsyncTask.java:278)
  at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
  at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
  at java.util.concurrent.FutureTask.run(FutureTask.java:137)
  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
  at java.lang.Thread.run(Thread.java:856)
Caused by: java.lang.NullPointerException
  at com.example.myapp.d.c$a.doInBackground(SourceFile:1)
  at android.os.AsyncTask$2.call(AsyncTask.java:264)
  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
  ... 5 more"
doInBackground メソッド内で、NullPointerException の例外が発生している箇所を try/catch ブロックで上手く囲んで、メソッドの最後で return null; を返すようにすればOKです。
また、このとき onPostExecute メソッド内で、引数に null が渡ってきたときに Async タスクが失敗したときの処理を行う必要があります。
[参考]
・android - AsyncTask doInBackground returning a nullpointerexception only sometimes - Stack Overflow
・Android : Getting RuntimeException on AsyncTask - Stack Overflow