我正在使用boilerpipe-android庫我從https://github.com/BartoszJarocki/boilerpipe-android下載 它在我處於調試模式時非常有效,但是當我編譯發佈版本時出現錯誤。Android Boilepipe - java.lang.RuntimeException
這是錯誤
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:309)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.ExceptionInInitializerError
at org.cyberneko.html.HTMLScanner.scanEntityRef(HTMLScanner.java:1386)
at org.cyberneko.html.HTMLScanner$ContentScanner.scanAttribute(HTMLScanner.java:2955)
at org.cyberneko.html.HTMLScanner$ContentScanner.scanAttribute(HTMLScanner.java:2785)
at org.cyberneko.html.HTMLScanner$ContentScanner.scanStartElement(HTMLScanner.java:2639)
at org.cyberneko.html.HTMLScanner$ContentScanner.scan(HTMLScanner.java:2071)
at org.cyberneko.html.HTMLScanner.scanDocument(HTMLScanner.java:891)
at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:491)
at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:444)
at mf.org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:109)
at mf.org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1199)
at de.l3s.boilerpipe.sax.BoilerpipeSAXInput.getTextDocument(BoilerpipeSAXInput.java:61)
at de.l3s.boilerpipe.sax.BoilerpipeSAXInput.getTextDocument(BoilerpipeSAXInput.java:49)
at de.l3s.boilerpipe.sax.ImageExtractor.process(ImageExtractor.java:109)
at com.ulicast.Feed.ImageLinkExtractor.doInBackground(ImageLinkExtractor.java:43)
at com.ulicast.Feed.ImageLinkExtractor.doInBackground(ImageLinkExtractor.java:22)
at android.os.AsyncTask$2.call(AsyncTask.java:295)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.NullPointerException: in == null
at java.util.Properties.load(Properties.java:246)
at org.cyberneko.html.HTMLEntities.load0(HTMLEntities.java:102)
at org.cyberneko.html.HTMLEntities.(HTMLEntities.java:54)
at org.cyberneko.html.HTMLScanner.scanEntityRef(HTMLScanner.java:1386)
at org.cyberneko.html.HTMLScanner$ContentScanner.scanAttribute(HTMLScanner.java:2955)
at org.cyberneko.html.HTMLScanner$ContentScanner.scanAttribute(HTMLScanner.java:2785)
at org.cyberneko.html.HTMLScanner$ContentScanner.scanStartElement(HTMLScanner.java:2639)
at org.cyberneko.html.HTMLScanner$ContentScanner.scan(HTMLScanner.java:2071)
at org.cyberneko.html.HTMLScanner.scanDocument(HTMLScanner.java:891)
at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:491)
at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:444)
at mf.org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:109)
at mf.org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1199)
at de.l3s.boilerpipe.sax.BoilerpipeSAXInput.getTextDocument(BoilerpipeSAXInput.java:61)
at de.l3s.boilerpipe.sax.BoilerpipeSAXInput.getTextDocument(BoilerpipeSAXInput.java:49)
at de.l3s.boilerpipe.sax.ImageExtractor.process(ImageExtractor.java:109)
at com.ulicast.Feed.ImageLinkExtractor.doInBackground(ImageLinkExtractor.java:43)
at com.ulicast.Feed.ImageLinkExtractor.doInBackground(ImageLinkExtractor.java:22)
at android.os.AsyncTask$2.call(AsyncTask.java:295)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
這裏是我使用來獲取數據的類。
public class ImageLinkExtractor extends AsyncTask<String, Void, String> {
private ImageLinkExtractorListener listener;
public ImageLinkExtractor (ImageLinkExtractorListener listener){
this.listener = listener;
}
@Override
protected void onPostExecute(String s) {
listener.onExecuteFinish(s);
}
@Override
protected String doInBackground(String... params) {
String url = params[0];
String image = null;
final BoilerpipeExtractor extractor = ArticleExtractor.getInstance();
final ImageExtractor ie = ImageExtractor.getInstance();
try {
List<Image> imgUrls = ie.process(new URL(url), extractor);
Collections.sort(imgUrls);
if(!imgUrls.isEmpty()) image = imgUrls.get(0).getSrc();
} catch (IOException | SAXException | BoilerpipeProcessingException e) {
e.printStackTrace();
}
return image;
}
public interface ImageLinkExtractorListener{
void onExecuteFinish(String imageUrl);
}
}
從我使用反射和類名調用此的AsyncTask我這樣稱呼它
new ImageLinkExtractor(new ImageLinkExtractor.ImageLinkExtractorListener() {
@Override
public void onExecuteFinish(String imageUrl) {
if(imageUrl!=null) {
post.setLinkImage(imageUrl);
holder.linkLayout.setVisibility(View.VISIBLE);
holder.linkImage.setImageUrl(imageUrl, AppController.getInstance().getImageLoader());
}
}
}).execute(post.getLink());
任何downvoting,關心給出的原因嗎?我的問題出了什麼問題? – user3564573
他們因爲問題投票是與圖書館幫助有關。 – karan
@karan是一個圖書館不會使問題無效。我也試着在github上提問。人們一直在這裏問谷歌/臉譜API的問題,這一點也不例外。 – user3564573