次のコードでは、
Document doc = null;
doc = Jsoup.parse(page):
String myexample = "My example";
Elements myexamples = doc.select("div.yourOptions p");
if (myexamples != null && myexamples.first().ownText() != null) myexample = myexamples.first().ownText();
私のアプリケーションのユーザーの 99.9% にとって、すべてが良いようです。
しかし、7 行目 (と同等) で NullPointerException を含むいくつかの StackTraces を受け取りました。 StackTrace :
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 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.tomtom.joe.mobile.Suivi$BackgroundAsyncTask.doInBackground(Suivi.java:369)
at com.tomtom.joe.mobile.Suivi$BackgroundAsyncTask.doInBackground(Suivi.java:1)
at android.os.AsyncTask$2.call(AsyncTask.java:264)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
... 4 more
NullPointerException から保護するにはどうすればよいですか? "myexamples.first().ownText()" の内容はユーザーによって異なります。しかし、「myexamples.first().ownText()」はnullになる可能性があると思います...
例 :
<div class="yourOptions"><div class="cockpitContent resizeHeight1">
<h2 class="Title">Title</h2>
<p>Options</p>
<p>Options 2</p>
</div></div>