2012-12-11 30 views
1

我在Android AIR原生擴展中遇到了JSoup的奇怪問題。JSoup.connect(String url)。java.lang.ExceptionInInitializerError .get

我試圖從YouTube加載一個頁面以從評論中提取一些數據。

這裏是 「得罪」 代碼:

private class ConnectToYouTube { 
    public String html = null; 
    public Exception error = null; 
} 

private class ConnectToYouTubeTask extends AsyncTask<String, Void, ConnectToYouTubeResult> 
{ 
    @Override 
    protected ConnectToYouTubeResult doInBackground(String... params) 
    { 
     ConnectToYouTubeResult result = new ConnectToYouTubeResult(); 

     String videoId = params[0]; 

     try { 
      Document doc = Jsoup.connect("http://www.youtube.com/watch?v="+videoId).get(); // in the catlog this is line 138 
      Elements foo = doc.select("#comment-text"); 
      result.html = foo.html(); 
     } catch (IOException e) { 
      result.error = e; 
     } 

     return result; 
    } 
} 

這是亞行的目錄下載

E/AndroidRuntime(12131): FATAL EXCEPTION: AsyncTask #1 
E/AndroidRuntime(12131): java.lang.RuntimeException: An error occured while executing doInBackground() 
E/AndroidRuntime(12131): at android.os.AsyncTask$3.done(AsyncTask.java:299) 
E/AndroidRuntime(12131): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352) 
E/AndroidRuntime(12131): at java.util.concurrent.FutureTask.setException(FutureTask.java:219) 
E/AndroidRuntime(12131): at java.util.concurrent.FutureTask.run(FutureTask.java:239) 
E/AndroidRuntime(12131): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 
E/AndroidRuntime(12131): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 
E/AndroidRuntime(12131): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 
E/AndroidRuntime(12131): at java.lang.Thread.run(Thread.java:856) 
E/AndroidRuntime(12131): Caused by: java.lang.ExceptionInInitializerError 
E/AndroidRuntime(12131): at org.jsoup.nodes.Document$OutputSettings.<init>(Document.java:210) 
E/AndroidRuntime(12131): at org.jsoup.nodes.Document.<init>(Document.java:18) 
E/AndroidRuntime(12131): at org.jsoup.parser.TreeBuilder.initialiseParse(TreeBuilder.java:27) 
E/AndroidRuntime(12131): at org.jsoup.parser.TreeBuilder.parse(TreeBuilder.java:40) 
E/AndroidRuntime(12131): at org.jsoup.parser.HtmlTreeBuilder.parse(HtmlTreeBuilder.java:37) 
E/AndroidRuntime(12131): at org.jsoup.parser.Parser.parseInput(Parser.java:30) 
E/AndroidRuntime(12131): at org.jsoup.helper.DataUtil.parseByteData(DataUtil.java:102) 
E/AndroidRuntime(12131): at org.jsoup.helper.HttpConnection$Response.parse(HttpConnection.java:481) 
E/AndroidRuntime(12131): at org.jsoup.helper.HttpConnection.get(HttpConnection.java:149) 
E/AndroidRuntime(12131): at com.freshplanet.ane.AirYouTube.extractor.YouTubeExtractor$ConnectToYouTubeTask.doInBackground(YouTubeExtractor.java:138) 
E/AndroidRuntime(12131): at com.freshplanet.ane.AirYouTube.extractor.YouTubeExtractor$ConnectToYouTubeTask.doInBackground(YouTubeExtractor.java:1) 
E/AndroidRuntime(12131): at android.os.AsyncTask$2.call(AsyncTask.java:287) 
E/AndroidRuntime(12131): at java.util.concurrent.FutureTask.run(FutureTask.java:234) 
E/AndroidRuntime(12131): ... 4 more 
E/AndroidRuntime(12131): Caused by: java.lang.ExceptionInInitializerError 
E/AndroidRuntime(12131): at org.jsoup.nodes.Entities$EscapeMode.<clinit>(Entities.java:20) 
E/AndroidRuntime(12131): ... 17 more 
E/AndroidRuntime(12131): Caused by: java.lang.NullPointerException: in == null 
E/AndroidRuntime(12131): at java.util.Properties.load(Properties.java:246) 
E/AndroidRuntime(12131): at org.jsoup.nodes.Entities.loadEntities(Entities.java:137) 
E/AndroidRuntime(12131): at org.jsoup.nodes.Entities.<clinit>(Entities.java:121) 
E/AndroidRuntime(12131): ... 18 more 

任何幫助將不勝感激。謝謝!

+1

確保Jsoup庫libs文件夾中。當這個問題出現時,我花了好幾個小時來對付這個錯誤。希望這有助於,歡呼。 – user1814155

回答

0

是@ user1814155是正確的,我花2天這樣的:d

Make sure the Jsoup library is in the Libs folder. I spend a good 2 hours banging my head against this error when that was the problem. Hope this helps, cheers. – user1814155 
相關問題