致命异常:main java.lang.RuntimeException:无法在Android Studio中启动activity ComponentInfo

致命异常:main java.lang.RuntimeException:无法在Android Studio中启动activity ComponentInfo,android,listview,Android,Listview,我在尝试创建android listview时遇到了这个问题。如果我插入listview的代码,则应用程序未打开,它显示应用程序已停止,如果我删除该listview的代码,则一切正常 这是我的MainActivity.java文件。我也有其他文件,但没有对它们进行任何更改,所以我认为问题出在这个文件中。这里有什么问题 package com.isudip.task3; import android.content.Intent; import android.support.v7.app.Ap

我在尝试创建android listview时遇到了这个问题。如果我插入listview的代码,则应用程序未打开,它显示应用程序已停止,如果我删除该listview的代码,则一切正常

这是我的MainActivity.java文件。我也有其他文件,但没有对它们进行任何更改,所以我认为问题出在这个文件中。这里有什么问题

package com.isudip.task3;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.AdapterView;

public class MainActivity extends AppCompatActivity {

    public Button btn;

    //button on the start page
    public void summary(){
        btn = (Button)findViewById(R.id.start);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent summaryView = new Intent(MainActivity.this, Summary.class);
                startActivity(summaryView);
            }
        });
    }

    //adding list

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

        ListView listView;
        listView = (ListView) findViewById(R.id.team_list);
        String[] values = new String[]{
                "Item 1",
                "Item 2",
                "Item 3",
                "Item 4"
        };

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, android.R.id.text1, values);

        listView.setAdapter(adapter);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {
                if (position == 0) {
                    Intent myIntent = new Intent(view.getContext(), City.class);
                    startActivityForResult(myIntent, 0);
                }

                if (position == 1) {
                    Intent myIntent = new Intent(view.getContext(), Arsenal.class);
                    startActivityForResult(myIntent, 0);
                }
            }
        });
    }
}

当您
startActivityForResult
时,您需要重写activityResult上的方法来处理响应

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// Check which request we're responding to
if (requestCode == PICK_CONTACT_REQUEST) {
    // Make sure the request was successful
    if (resultCode == RESULT_OK) {
        // The user picked a contact.
        // The Intent's data Uri identifies which contact was selected.

        // Do something with the contact here (bigger example below)
    }
 }
}

您在上有一个NullPointerException

com.isudip.task3.MainActivity.onCreate(MainActivity.java:48)
在第48行中,使用listView:

listView.setAdapter(adapter);
这意味着listView为Null(未初始化)。您尝试通过从布局中获取来初始化它:

setContentView(R.layout.activity_main);
...
ListView listView;
listView = (ListView) findViewById(R.id.team_list);
似乎在名为
activity\u main
的布局中找不到id为
team\u list
的listView,在这种情况下可能返回Null


检查布局中是否有名为“团队列表”的列表视图。

感谢大家的帮助。这个问题很愚蠢。我试图从MainActivity调用我的ListView,但ListView是另一个xml,这就是问题的原因,现在将我的ListView的代码移动到相关的java类,现在一切都好了。

任何时候发生故障,你都应该从LogCat获取stacktrace并首先检查它。只要用LogCat编辑我的问题,抱歉出错,请现在查看,谢谢。首先忘记添加logcat,请您再看一看??ArrayAdapter itemsAdapter=new ArrayAdapter(这个,android.R.layout.simple_list_item_1,值);像这样定义适配器,然后将其分配给listView。是否尝试重写onActivityResult方法?。这是有道理的,我的listView位于另一个xml文件中,我愚蠢到从MainActivity调用它。非常感谢,我将与我的ListView相关的代码移到了那个java类中,一切都很好。。。
setContentView(R.layout.activity_main);
...
ListView listView;
listView = (ListView) findViewById(R.id.team_list);