我在edittext中使用textwatcher来验证字符串是否为url
if (Patterns.WEB_URL.matcher(url).matches()) {
并将此url传递给asynctask其中
@Override
protected Void doInBackground(String... params) {
try {
while (!isCancelled()) {
// Connect to the web site
document = Jsoup.connect(URLEncoder.encode(URL, "UTF-8"))
.userAgent("Mozilla").get();
}
但是在edittext中键入m.go时,我得到一个malformedURLException:
java.net.MalformedURLException:无协议:M.go
我也试图 grab 异常
catch (SocketTimeoutException ex) {
ex.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
你可以帮助我找到解决方案,因为应用程序每次都会崩溃
CompleteLog:
E / UncaughtException:java.lang.RuntimeException:在java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)的android.os.AsyncTask $ 3.done(AsyncTask.java:325)上执行doInBackground()时发生错误)java.util.concurrent.FutureTask.run(FutureTask.java:223)java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java)中java.util.concurrent.FutureTask.setException(FutureTask.java:223)的java.util.concurrent.FutureTask.setException(FutureTask.java:223) 1133)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:607)at java.lang.Thread.run(Thread.java:761)引起:java.lang.IllegalArgumentException:格式错误的URL:M . 去org.jsoup.helper.HttpConnection.url(HttpConnection.java:101)org.jsoup.helper.HttpConnection.connect(HttpConnection.java:43)org.jsoup.Jsoup.connect(Jsoup.java:73) at at at android.os.AsyncTask $ 2.call(AsyncTask.java:305)at java.util.concurrent.FutureTask.run(FutureTask.java:237)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java: 1133) at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:607)at java.lang.Thread.run(Thread.java:761)引起:java.net.MalformedURLException:no protocol:M.go at java.net.URL . (URL.java:589)位于java.net.URL . (URL.java:486),位于org.jsoup.helper.HttpConnection的java.net.URL . (URL.java:435) . url(HttpConnection.java:99)atg.jsoup.helper.HttpConnection.connect(HttpConnection.java:43)atg.jsoup.Jsoup.connect(Jsoup.java:73)at at android.os.AsyncTask $ 2 . 在java.util.concurrent.ThreadPoolExecutor的java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)java.util.concurrent.FutureTask.run(FutureTask.java:237)调用(AsyncTask.java:305) java.lang.Thread.run上的$ Worker.run(ThreadPoolExecutor.java:607)(Thread.java:761)