gpt4 book ai didi

java - 尝试连接 android studio 中的 jsoup 时模拟器应用程序崩溃

转载 作者:行者123 更新时间:2023-12-02 09:08:26 24 4
gpt4 key购买 nike

在android studio中运行和编译代码时没有错误,但是在按下按钮连接jsoup后,应用程序由于某种原因崩溃了。有人知道我做错了什么吗?

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import java.io.IOException;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

}


class JsoupParseTask extends AsyncTask<String, Void, Document> {

protected Document doInBackground(String... urls) {

Document doc = null;
try {
doc = Jsoup.connect("http://google.com/").get();
}
catch (IOException e)
{
e.printStackTrace();
}

return doc;
}
}

public void connect(View v) {

// Call from here, it will execute doInBackground
new JsoupParseTask().execute();
}


}

最佳答案

这只是一个类型为 NetworkOnMainThreadException 的异常,当应用程序尝试在其主线程上执行网络操作时抛出该异常。

例如,尝试在 AsyncTask 中运行代码:

class JsoupParseTask extends AsyncTask<String, Void, Document> {

@Override
protected Document doInBackground(String... urls) {

Document doc = null;
try {
doc = Jsoup.connect("http://google.com/").get();
}
catch (IOException e)
{
e.printStackTrace();
}

return doc;
}

@Override
protected void onPostExecute(Document doc) {
// execution of result here

String title = doc.title();
}

}

并像下面这样调用:

public void connect(View v) {

// Call from here, it will execute doInBackground
new JsoupParseTask().execute();
}

除此之外,不要忘记在 AndroidManifest.xml 中添加互联网权限

<uses-permission android:name="android.permission.INTERNET" />

但是由于 AsyncTask 已被弃用,您可以尝试它的替代方案。这是一个不错的tutorial提到了 AsyncTask

的一些替代方案

关于java - 尝试连接 android studio 中的 jsoup 时模拟器应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59603856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com