gpt4 book ai didi

java.lang.runtimeException 无法启动 Activity componentInfo

转载 作者:太空宇宙 更新时间:2023-11-04 12:20:50 24 4
gpt4 key购买 nike

我正在尝试创建一个 Android 应用程序,该应用程序从 realclearpolitics 网站获取民意调查数据并将其转换为图表。它应该使用 jsoup 将网站上轮询表中的每一列存储到数组列表中。然而,当我运行该应用程序时,我遇到了异常。

package com.pollapp.presidentialelectionpolls;

import java.io.IOException;
import java.util.ArrayList;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import android.os.Bundle;
import android.os.StrictMode;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ListView;

@SuppressLint("NewApi")

public class MainActivity extends Activity {

Document doc;
Element table;
Elements rows;
ListView dispData;
ArrayList<String> nameOfSrc = new ArrayList<String>();
ArrayList<String> dateWidth = new ArrayList<String>();
ArrayList<String> Trump = new ArrayList<String>();
ArrayList<String> Clinton = new ArrayList<String>();

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

dispData = (ListView) findViewById(R.id.listView1);
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);

try {
doc = Jsoup
.connect(
"http://www.realclearpolitics.com/epolls/2016/president/us/general_election_trump_vs_clinton-5491.html")
.get();
} catch (IOException e) {
e.printStackTrace();
}

table = doc.select("table").get(1);
rows = table.select("tr");

for (int i = 2; i < rows.size(); i++) {
Element row = rows.get(i);
Elements cols = row.select("td");
nameOfSrc.add(cols.get(0).text());
dateWidth.add(cols.get(1).text());
Trump.add(cols.get(4).text());
Clinton.add(cols.get(5).text());
}

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, Trump);
dispData.setAdapter(arrayAdapter);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}

这是我的 logcat 信息:

08-10 06:42:13.999: E/AndroidRuntime(1748): FATAL EXCEPTION: main
08-10 06:42:13.999: E/AndroidRuntime(1748): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.pollapp.presidentialelectionpolls/com.pollapp.presidentialelectionpolls.MainActivity}: java.lang.NullPointerException
08-10 06:42:13.999: E/AndroidRuntime(1748): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
08-10 06:42:13.999: E/AndroidRuntime(1748): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
08-10 06:42:13.999: E/AndroidRuntime(1748): at android.app.ActivityThread.access$600(ActivityThread.java:141)
08-10 06:42:13.999: E/AndroidRuntime(1748): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
08-10 06:42:13.999: E/AndroidRuntime(1748): at android.os.Handler.dispatchMessage(Handler.java:99)
08-10 06:42:13.999: E/AndroidRuntime(1748): at android.os.Looper.loop(Looper.java:137)
08-10 06:42:13.999: E/AndroidRuntime(1748): at android.app.ActivityThread.main(ActivityThread.java:5103)
08-10 06:42:13.999: E/AndroidRuntime(1748): at java.lang.reflect.Method.invokeNative(Native Method)
08-10 06:42:13.999: E/AndroidRuntime(1748): at java.lang.reflect.Method.invoke(Method.java:525)
08-10 06:42:13.999: E/AndroidRuntime(1748): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
08-10 06:42:13.999: E/AndroidRuntime(1748): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
08-10 06:42:13.999: E/AndroidRuntime(1748): at dalvik.system.NativeStart.main(Native Method)
08-10 06:42:13.999: E/AndroidRuntime(1748): Caused by: java.lang.NullPointerException
08-10 06:42:13.999: E/AndroidRuntime(1748): at com.pollapp.presidentialelectionpolls.MainActivity.onCreate(MainActivity.java:50)
08-10 06:42:13.999: E/AndroidRuntime(1748): at android.app.Activity.performCreate(Activity.java:5133)
08-10 06:42:13.999: E/AndroidRuntime(1748): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
08-10 06:42:13.999: E/AndroidRuntime(1748): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
08-10 06:42:13.999: E/AndroidRuntime(1748): ... 11 more

最佳答案

您使用了错误的表格(边有四个,而不是假设的两个),导致中只有两个条目。

尝试:

table = doc.select("table.data.large").get(1);

我还建议在 try-catch block 之后验证 doc 是否有效,并做出相应 react ,或者将使用文档的以下代码也移动到 try-catch block 中,否则遇到未处理异常的机会非常高(例如,如果服务器无法访问等)。

关于java.lang.runtimeException 无法启动 Activity componentInfo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38871293/

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