- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
这是我的问题的概要。有一个带有 2 个按钮的主要 Activity 。当用户单击第一个按钮 (randomButton) 时,将启动一个新 Activity (Random.java)。这个新 Activity 将有一个 TextView 小部件。 TextView 的文本将更改为我使用 JSoup 拉取的网站的标题。
编辑: 如果有任何不同,我正在使用 JSoup 1.7.2。
我正在使用 AsyncTask,但一旦我单击按钮启动新 Activity (Random.java),我的应用程序就会崩溃。
Main.java 的相关部分新 Activity 将在 randomButton onClickListener 中启动
randomButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "Random Quote Will be Generated...", Toast.LENGTH_LONG).show(); //
//Now a new intent will be created to go to the Random.java activity!
Intent intent = new Intent(getBaseContext(), Random.class);
startActivity(intent);
}
});
随机.java
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.support.v4.app.NavUtils;
public class Random extends Activity {
//This is the activity launched when the user selects the randomButton on main activity.
Handler handler;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_random_quote);
// Show the Up button in the action bar.
setupActionBar();
handler = new Handler();
textView = (TextView)findViewById(R.id.textView);
new GetTitle().execute();
}
private class GetTitle extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... params) {
// TODO Auto-generated method stub
Document doc;
try {
doc = Jsoup.connect("http://www.google.com").userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6").get();
return doc.title();
} catch (IOException e) {
return null;
}
}
@Override
protected void onPostExecute(String title){
TextView textView = (TextView)findViewById(R.id.textView);
textView.setText(title);
}
}
/**
* Set up the {@link android.app.ActionBar}.
*/
private void setupActionBar() {
getActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.random_quote, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// This ID represents the Home or Up button. In the case of this
// activity, the Up button is shown. Use NavUtils to allow users
// to navigate up one level in the application structure. For
// more details, see the Navigation pattern on Android Design:
//
// http://developer.android.com/design/patterns/navigation.html#up-vs-back
//
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
}
在我的 AndroidManifest.xml 我有:
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
LogCat
11-20 17:07:55.452: D/ActivityThread(12564): setTargetHeapUtilization:0.25
11-20 17:07:55.452: D/ActivityThread(12564): setTargetHeapIdealFree:8388608
11-20 17:07:55.452: D/ActivityThread(12564): setTargetHeapConcurrentStart:2097152
11-20 17:07:55.752: D/dalvikvm(12564): GC_FOR_ALLOC freed 57K, 18% free 17368K/21059K, paused 25ms, total 25ms
11-20 17:07:55.823: D/dalvikvm(12564): GC_CONCURRENT freed 1K, 13% free 26468K/30215K, paused 13ms+3ms, total 29ms
11-20 17:07:56.023: I/Adreno200-EGLSUB(12564): <ConfigWindowMatch:2087>: Format RGBA_8888.
11-20 17:07:56.043: E/(12564): <s3dReadConfigFile:75>: Can't open file for reading
11-20 17:07:56.043: E/(12564): <s3dReadConfigFile:75>: Can't open file for reading
11-20 17:07:57.755: W/dalvikvm(12564): VFY: unable to resolve static method 5320: Lorg/jsoup/Jsoup;.connect (Ljava/lang/String;)Lorg/jsoup/Connection;
11-20 17:07:57.805: W/dalvikvm(12564): threadid=11: thread exiting with uncaught exception (group=0x414ce438)
11-20 17:07:57.835: I/Adreno200-EGLSUB(12564): <ConfigWindowMatch:2087>: Format RGBA_8888.
11-20 17:07:57.925: E/AndroidRuntime(12564): FATAL EXCEPTION: AsyncTask #1
11-20 17:07:57.925: E/AndroidRuntime(12564): java.lang.RuntimeException: An error occured while executing doInBackground()
11-20 17:07:57.925: E/AndroidRuntime(12564): at android.os.AsyncTask$3.done(AsyncTask.java:299)
11-20 17:07:57.925: E/AndroidRuntime(12564): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
11-20 17:07:57.925: E/AndroidRuntime(12564): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
11-20 17:07:57.925: E/AndroidRuntime(12564): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
11-20 17:07:57.925: E/AndroidRuntime(12564): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
11-20 17:07:57.925: E/AndroidRuntime(12564): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
11-20 17:07:57.925: E/AndroidRuntime(12564): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
11-20 17:07:57.925: E/AndroidRuntime(12564): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
11-20 17:07:57.925: E/AndroidRuntime(12564): at java.lang.Thread.run(Thread.java:856)
11-20 17:07:57.925: E/AndroidRuntime(12564): Caused by: java.lang.NoClassDefFoundError: org.jsoup.Jsoup
11-20 17:07:57.925: E/AndroidRuntime(12564): at com.example.brainyquote.RandomQuote$GetTitle.doInBackground(RandomQuote.java:46)
11-20 17:07:57.925: E/AndroidRuntime(12564): at com.example.brainyquote.RandomQuote$GetTitle.doInBackground(RandomQuote.java:1)
11-20 17:07:57.925: E/AndroidRuntime(12564): at android.os.AsyncTask$2.call(AsyncTask.java:287)
11-20 17:07:57.925: E/AndroidRuntime(12564): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
11-20 17:07:57.925: E/AndroidRuntime(12564): ... 5 more
11-20 17:08:07.135: E/SpannableStringBuilder(12564): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
11-20 17:08:07.135: E/SpannableStringBuilder(12564): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
最佳答案
11-20 17:07:57.755: W/dalvikvm(12564): VFY: unable to resolve static method 5320: Lorg/jsoup/Jsoup;.connect (Ljava/lang/String;)Lorg/jsoup/Connection;
dalvikvm 找不到此方法 Jsoup.connect("http://www.google.com ")。检查 Jsoup.jar 是否在您的 libs 文件夹中。如果是,请检查您是否正在导出项目私有(private)库。
这应该被检查。
关于java - Android 应用程序因 JSoup 而崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20108373/
我有一些像这样的 html: zip code 我的 Java 代码 Elements formElements = doc.getElementsByTag("form"); for(Ele
我无法使用 创建 session jsoup 以及如何使用 jsoup 发布数据.请帮助我,我是新来的 jsoup api ,实际上我的代码是: Connection.Response res = J
我想添加一个新的元标记 Document doc = Jsoup.parse(.....) doc.select("meta").first.appendElement("meta".attr("na
有没有办法用 Jsoup 保留新行,(不是 )? Document pdsc = Jsoup.connect("http://drafts.bestsiteeditor.com/promoters/d
我需要将 jsoup 元素映射回源 HTML 中的特定字符偏移量。换句话说,如果我有这样的 HTML: Hello World 我需要知道“Hello”从偏移量 0 开始,长度为 6 个字符,从偏移
我喜欢用 Jsoup 解析 html,但是他们的连接有问题,我需要将请求发送到同一个网站但不同的查询参数,比如“id=XXX”,请求是这样的: http://website/?id=XXX 我不想为每
我有代码,有点像这样 String str = " >foo< "; Document doc = Jsoup.parse(str, "", Parser.xmlParser()); 但
是否可以使用 jsoup 来验证 HTML 片段?我想知道标记是否格式错误,而不是让 jsoup 自动修复它,我希望能够通知用户自己修复源标记。 最佳答案 Jsoup 不是检查 xml 或 html
Jsoup 有 2 个 html parse() 方法: > parse(String html) - "由于没有指定基本 URI,绝对 URL检测依赖于包含标记的 HTML。” > parse(St
我正在尝试使用 jsoup 从此网页中提取所有图片网址?任何人都可以提供有关如何做到这一点的帮助吗?所有标签的格式都是这样的,但我只需要 src 图像,而不是 ajaxsrc: 链接在这里: htt
我试图找到所有 或 一页/文档中的标签。 我如何使用 OR运算符(operator)在 doc.select("div.name1 OR div.name2") ? 最佳答案 select metho
我为我的项目创建了一个新模块来添加一些额外的功能。在该模块中,我在模块的 Gradle 文件 implementation 'org.jsoup:jsoup:1.10.2' 中添加了 Jsoup 依赖
我正在寻找这个 div 中的主图像 我试过这个: Document document = Jsoup.connect(url).get(); Elements img = document.se
谁能解释一下 JSoup 中提供的 Element 对象和 Node 对象之间的区别? 在什么情况/条件下使用什么最好。 最佳答案 节点是 DOM 层次结构中任何类型对象的通用名称。 元素是一种特定类
有什么方法可以防止 Jsoup 的 HTML 解析器将单个标签(最具体的是 标签)转换为自闭合标签? 标签是有效的 HTML5 元素,但 Jsoup 一直将它们转换为 . 我在下面的链接中有一个示
可以屏蔽吗 Jsoup.connect("http://xyz.com").get().html(); 作为对网站的浏览器调用? 我尝试构建一个壁纸下载工具,但在从服务器下载页面时遇到问题。 如果我下
我希望在 Groovy 中开发一个网络爬虫(使用 Grails 框架和 MongoDB 数据库),它能够爬取网站,创建网站 URL 列表及其资源类型、内容、响应时间和所涉及的重定向数量。 我正在讨论
如果我有一个看起来像这样的元素: bar text 1 bar text 2 我已经有了 元素被选中,我想选择 元素是 的直接子元素但不是
任何人都可以提供有关我将如何解析超大 HTML 流/文件的指针或建议。例如,我有一个大约有 270,000 行的表,我想一次将它带入我的应用程序大约 20,000 行。 jsoup 解析方法允许使用
我收到此错误: java.lang.RuntimeException: An error occured while executing doInBackground() at and
我是一名优秀的程序员,十分优秀!