2012-03-01 29 views
1

私はアンドロイドのアプリケーションのいずれかのJsoupを使用している、と私は、私は()connection.getを呼び出したときにNullPointerExceptionが投げ続けコードの比較的単純な部分を持っています。Jsoup()

これはバック数ヶ月を仕事に使用していないが、最新のSDKをインストールした後、それはもはやエミュレータで動作します。私の物理的なデバイスでは正常に動作していますが、これがエミュレーションバグか他のハンドセットに影響するかどうかはわかりません。

これは私のコードです:

String URL = "http://finance.google.com/finance/feeds/default/portfolios?returns=true" 
String _AUTHPARAMS = "GoogleLogin auth=" 
String AuthToken = "random string of characters" 

Connection c = Jsoup.connect(URL); 
c.header("Authorization", _AUTHPARAMS + AuthToken); 
c.userAgent("foo"); 
c.timeout(10000); 
c.ignoreContentType(true); 
Document doc = c.get(); 

私はexception.getMessage(呼び出す場合、私は最後の行(c.get())

上にNullPointerExceptionをキャッチしています)、それだけで「ヌルを語ります"私はアンドロイドやjsoupのバグ以外に何が原因かもしれないのか分かりません。

======= EDIT ========

私はJsoup 1.6.1に

を使用していますが、ここでは日食からスタックトレースです:

03-01 00:43:22.459: E/AndroidRuntime(392): FATAL EXCEPTION: AsyncTask #1 
03-01 00:43:22.459: E/AndroidRuntime(392): java.lang.RuntimeException: An error occured while executing doInBackground() 
03-01 00:43:22.459: E/AndroidRuntime(392): at android.os.AsyncTask$3.done(AsyncTask.java:200) 
03-01 00:43:22.459: E/AndroidRuntime(392): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273) 
03-01 00:43:22.459: E/AndroidRuntime(392): at java.util.concurrent.FutureTask.setException(FutureTask.java:124) 
03-01 00:43:22.459: E/AndroidRuntime(392): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307) 
03-01 00:43:22.459: E/AndroidRuntime(392): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
03-01 00:43:22.459: E/AndroidRuntime(392): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068) 
03-01 00:43:22.459: E/AndroidRuntime(392): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561) 
03-01 00:43:22.459: E/AndroidRuntime(392): at java.lang.Thread.run(Thread.java:1096) 
03-01 00:43:22.459: E/AndroidRuntime(392): Caused by: java.lang.NullPointerException 
03-01 00:43:22.459: E/AndroidRuntime(392): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.readln(HttpURLConnectionImpl.java:1279) 
03-01 00:43:22.459: E/AndroidRuntime(392): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl$ChunkedInputStream.readChunkSize(HttpURLConnectionImpl.java:404) 
03-01 00:43:22.459: E/AndroidRuntime(392): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl$ChunkedInputStream.<init>(HttpURLConnectionImpl.java:340) 
03-01 00:43:22.459: E/AndroidRuntime(392): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getContentStream(HttpURLConnectionImpl.java:1175) 
03-01 00:43:22.459: E/AndroidRuntime(392): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.doRequestInternal(HttpURLConnectionImpl.java:1754) 
03-01 00:43:22.459: E/AndroidRuntime(392): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.doRequest(HttpURLConnectionImpl.java:1649) 
03-01 00:43:22.459: E/AndroidRuntime(392): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:1374) 
03-01 00:43:22.459: E/AndroidRuntime(392): at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:381) 
03-01 00:43:22.459: E/AndroidRuntime(392): at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:364) 
03-01 00:43:22.459: E/AndroidRuntime(392): at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:143) 
03-01 00:43:22.459: E/AndroidRuntime(392): at org.jsoup.helper.HttpConnection.get(HttpConnection.java:132) 
03-01 00:43:22.459: E/AndroidRuntime(392): at com.karwosts.PortfolioMap.GoogleFinance.SendHttpRequest(GoogleFinance.java:138) 
03-01 00:43:22.459: E/AndroidRuntime(392): at com.karwosts.PortfolioMap.GoogleFinance.getDocument(GoogleFinance.java:78) 
03-01 00:43:22.459: E/AndroidRuntime(392): at com.karwosts.PortfolioMap.GoogleFinance.GetPortfolioList(GoogleFinance.java:36) 
03-01 00:43:22.459: E/AndroidRuntime(392): at com.karwosts.PortfolioMap.GooglePortfolioSelector$AsyncPortfolioRetriever.doInBackground(GooglePortfolioSelector.java:134) 
03-01 00:43:22.459: E/AndroidRuntime(392): at com.karwosts.PortfolioMap.GooglePortfolioSelector$AsyncPortfolioRetriever.doInBackground(GooglePortfolioSelector.java:1) 
03-01 00:43:22.459: E/AndroidRuntime(392): at android.os.AsyncTask$2.call(AsyncTask.java:185) 
03-01 00:43:22.459: E/AndroidRuntime(392): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
03-01 00:43:22.459: E/AndroidRuntime(392): ... 4 more 
+0

は、使用しているJSoupのスタックトレース&バージョンを添付しますか? – Jens

+0

@Jens情報が投稿されました。ありがとうございます。 – Tim

答えて

0

あなたのスタックトレースから私は、あなたは、Android 2.1(または他の「古い」バージョン)でこのbug (15554)に遭遇している推測している - あなたは、Apache HTTPクライアントを使用してドキュメントをダウンロードすることができるはず - 古いAndroidの実装にかなり良く働きます(HttpURLConnectionはバグばかりだったから)。

+0

同じバグ(私の有線イーサネット接続の2.2)がわかりませんが、とにかくあなたのアドバイスを取ってApache HttpClientに置き換えてもうまくいくようです。提案していただきありがとうございます。 – Tim

+0

さて、Googleは3.0以降のために(http://android-developers.blogspot.com/2011/09/androids-http-clients.html)[HttpURLConnectionのを推奨しています]が、それは2.xのバージョンでバギーのようなものです。 – Jens