java.lang.RuntimeException的:无法启动的活动ComponentInfo {...}:显示java.lang.NullPointerException [英] java.lang.RuntimeException: Unable to start activity ComponentInfo {...}: java.lang.NullPointerException

查看:148
本文介绍了java.lang.RuntimeException的:无法启动的活动ComponentInfo {...}:显示java.lang.NullPointerException的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当您单击从一个活动到另一个去,我有一个错误:

了java.lang.RuntimeException:无法启动活动ComponentInfo {...}:显示java.lang.NullPointerException

我缺少一些方法?请帮我明白我做错了什么,这就是为什么你看到这个错误?

我的活动:Zaselenie.java

 进口的java.util.ArrayList;

进口android.app.Activity;
进口android.database.Cursor;
进口android.database.sqlite.SQLiteDatabase;
进口android.os.Bundle;
进口android.util.Log;
进口android.widget.ArrayAdapter;
进口android.widget.Spinner;

公共类Zaselenie延伸活动{

    ContactDBmoy CQH;
    KvartDB KDB;
    SQLiteDatabase深发展;

    私人龙ROWID;

    微调spZaselenie;

    @覆盖
    保护无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.zaselenie);

    spZaselenie =(微调)findViewById(R.id.spZaselenie);

    //Инициализируемнашкласс,обёртку
            CQH =新ContactDBmoy(Zaselenie.this);
            KDB =新KvartDB(Zaselenie.this);

            //Базанамнужнадлязаписиичтения
            SDB = cqh.getWritableDatabase();
            SDB = kdb.getWritableDatabase();

            捆绑额外= getIntent()getExtras()。
            ROWID = extras.getLong(ContactMain.rowId);



            光标cursorKvart = sdb.query(KvartDB.TABLE_NAME,新的String [] {
                    KvartDB._ID,KvartDB.NAME_COLUMN},空,//将
                                                                    //列
                                                                    // 为了
                                                                    // 哪里
                                                                    // 条款
                    空,//值的WHERE子句
                    NULL,//不群的行
                    空,//不要被行组筛选
                    空//排序顺序
                    );


            ArrayList的<字符串>标签=新的ArrayList<字符串>();
            而(cursorKvart.moveToNext()){
                //获取这些列列索引+ VALUES
                INT idKvart = cursorKvart.getInt(cursorKvart.getColumnIndex(KvartDB._ID));
                串nameKvart = cursorKvart.getString(cursorKvart.getColumnIndex(KvartDB.NAME_COLUMN));
                Log.i(LOG_TAG,行+ idKvart +也名+ nameKvart);



                    labels.add(nameKvart);
                    //创建适配器微调
                    ArrayAdapter<字符串> DataAdapter的=新的ArrayAdapter<字符串>(这一点,
                            android.R.layout.simple_spinner_item,标签);

                    //下拉布局样式 - 列表视图单选按钮
                    DataAdapter的
                            .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                    dataAdapter.notifyDataSetChanged();

                    //连接数据适配器微调器
                    spZaselenie.setAdapter(DataAdapter的);
            }
            cursorKvart.close();

    }

    公共Zaselenie(){
        // TODO自动生成构造函数存根
    }

    @覆盖
    保护无效onResume(){
        super.onResume();

    }

    @覆盖
    保护无效的onStop(){
        super.onStop();
        //з​​акрываемсоединениясбазойданных
        sdb.close();
        kdb.close();
    }
}
 

logcat的错误:

  12月3号至6日:04:43.802:E / AndroidRuntime(20861):致命异常:主要
12月3号至六日:04:43.802:E / AndroidRuntime(20861):java.lang.RuntimeException的:无法启动的活动ComponentInfo {ru.zloyel.manager_sutochnoy_arendy_1 / ru.zloyel.manager_sutochnoy_arendy_1.Zaselenie}:显示java.lang.NullPointerException
12月3号至六日:04:43.802:E / AndroidRuntime(20861):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
12月3号至六日:04:43.802:E / AndroidRuntime(20861):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
12月3号至六日:04:43.802:E / AndroidRuntime(20861):在android.app.ActivityThread.access $ 600(ActivityThread.java:130)
12月3号至六日:04:43.802:E / AndroidRuntime(20861):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1195)
12月3号至六日:04:43.802:E / AndroidRuntime(20861):在android.os.Handler.dispatchMessage(Handler.java:99)
12月3号至六日:04:43.802:E / AndroidRuntime(20861):在android.os.Looper.loop(Looper.java:137)
12月3号至六日:04:43.802:E / AndroidRuntime(20861):在android.app.ActivityThread.main(ActivityThread.java:4745)
12月3号至六日:04:43.802:E / AndroidRuntime(20861):在java.lang.reflect.Method.invokeNative(本机方法)
12月3号至六日:04:43.802:E / AndroidRuntime(20861):在java.lang.reflect.Method.invoke(Method.java:511)
12月3号至六日:04:43.802:E / AndroidRuntime(20861):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:786)
12月3号至六日:04:43.802:E / AndroidRuntime(20861):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
12月3号至六日:04:43.802:E / AndroidRuntime(20861):在dalvik.system.NativeStart.main(本机方法)
12月3号至六日:04:43.802:E / AndroidRuntime(20861):由:显示java.lang.NullPointerException
12月3号至六日:04:43.802:E / AndroidRuntime(20861):在ru.zloyel.manager_sutochnoy_arendy_1.Zaselenie.onCreate(Zaselenie.java:39)
12月3号至六日:04:43.802:E / AndroidRuntime(20861):在android.app.Activity.performCreate(Activity.java:5008)
12月3号至六日:04:43.802:E / AndroidRuntime(20861):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
12月3号至六日:04:43.802:E / AndroidRuntime(20861):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
12月3号至六日:04:43.802:E / AndroidRuntime(20861):11 ...更多
 

解决方案

检查演员不是如下...

 如果(临时演员!= NULL){
    ROWID = extras.getLong(ContactMain.rowId);
}
 

另外,请检查你的光标对象不为空,如下...

 如果(cursorKvart = NULL和放大器;!&安培; cursorKvart.getCount()0){

    而(cursorKvart.moveToNext()){

        ......

    }

}
 

when you click to go from one activity to another, I have an error:

java.lang.RuntimeException: Unable to start activity ComponentInfo {...}: java.lang.NullPointerException

I am missing some method? Please help me to understand what I did wrong, which is why you see this error?

My activity: Zaselenie.java

import java.util.ArrayList;

import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

public class Zaselenie extends Activity {

    ContactDBmoy cqh;
    KvartDB kdb;
    SQLiteDatabase sdb;

    private Long rowId;

    Spinner spZaselenie;

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

    spZaselenie  = (Spinner)findViewById(R.id.spZaselenie);

    // Инициализируем наш класс-обёртку
            cqh = new ContactDBmoy(Zaselenie.this);
            kdb = new KvartDB(Zaselenie.this);

            // База нам нужна для записи и чтения
            sdb = cqh.getWritableDatabase();
            sdb = kdb.getWritableDatabase();

            Bundle extras = getIntent().getExtras();
            rowId = extras.getLong(ContactMain.rowId);



            Cursor cursorKvart = sdb.query(KvartDB.TABLE_NAME, new String[] {
                    KvartDB._ID, KvartDB.NAME_COLUMN }, null, // The
                                                                    // columns
                                                                    // for the
                                                                    // WHERE
                                                                    // clause
                    null, // The values for the WHERE clause
                    null, // don't group the rows
                    null, // don't filter by row groups
                    null // The sort order
                    );


            ArrayList<String> labels = new ArrayList<String>();
            while (cursorKvart.moveToNext()) {
                // GET COLUMN INDICES + VALUES OF THOSE COLUMNS
                int idKvart = cursorKvart.getInt(cursorKvart.getColumnIndex(KvartDB._ID));
                String nameKvart = cursorKvart.getString(cursorKvart.getColumnIndex(KvartDB.NAME_COLUMN));
                Log.i("LOG_TAG", "ROW " + idKvart + " HAS NAME " + nameKvart);



                    labels.add(nameKvart);
                    // Creating adapter for spinner
                    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
                            android.R.layout.simple_spinner_item, labels);

                    // Drop down layout style - list view with radio button
                    dataAdapter
                            .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                    dataAdapter.notifyDataSetChanged();

                    // attaching data adapter to spinner
                    spZaselenie.setAdapter(dataAdapter);
            }
            cursorKvart.close();

    }

    public Zaselenie() {
        // TODO Auto-generated constructor stub
    }

    @Override
    protected void onResume() {
        super.onResume();

    }

    @Override
    protected void onStop() {
        super.onStop();
        // закрываем соединения с базой данных
        sdb.close();
        kdb.close();
    }
}

Logcat error:

03-06 12:04:43.802: E/AndroidRuntime(20861): FATAL EXCEPTION: main
03-06 12:04:43.802: E/AndroidRuntime(20861): java.lang.RuntimeException: Unable to start activity ComponentInfo{ru.zloyel.manager_sutochnoy_arendy_1/ru.zloyel.manager_sutochnoy_arendy_1.Zaselenie}: java.lang.NullPointerException
03-06 12:04:43.802: E/AndroidRuntime(20861):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
03-06 12:04:43.802: E/AndroidRuntime(20861):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
03-06 12:04:43.802: E/AndroidRuntime(20861):    at android.app.ActivityThread.access$600(ActivityThread.java:130)
03-06 12:04:43.802: E/AndroidRuntime(20861):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
03-06 12:04:43.802: E/AndroidRuntime(20861):    at android.os.Handler.dispatchMessage(Handler.java:99)
03-06 12:04:43.802: E/AndroidRuntime(20861):    at android.os.Looper.loop(Looper.java:137)
03-06 12:04:43.802: E/AndroidRuntime(20861):    at android.app.ActivityThread.main(ActivityThread.java:4745)
03-06 12:04:43.802: E/AndroidRuntime(20861):    at java.lang.reflect.Method.invokeNative(Native Method)
03-06 12:04:43.802: E/AndroidRuntime(20861):    at java.lang.reflect.Method.invoke(Method.java:511)
03-06 12:04:43.802: E/AndroidRuntime(20861):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
03-06 12:04:43.802: E/AndroidRuntime(20861):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
03-06 12:04:43.802: E/AndroidRuntime(20861):    at dalvik.system.NativeStart.main(Native Method)
03-06 12:04:43.802: E/AndroidRuntime(20861): Caused by: java.lang.NullPointerException
03-06 12:04:43.802: E/AndroidRuntime(20861):    at ru.zloyel.manager_sutochnoy_arendy_1.Zaselenie.onCreate(Zaselenie.java:39)
03-06 12:04:43.802: E/AndroidRuntime(20861):    at android.app.Activity.performCreate(Activity.java:5008)
03-06 12:04:43.802: E/AndroidRuntime(20861):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
03-06 12:04:43.802: E/AndroidRuntime(20861):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
03-06 12:04:43.802: E/AndroidRuntime(20861):    ... 11 more

解决方案

Check that extras isn't null as below...

if(extras != null) {
    rowId = extras.getLong(ContactMain.rowId);
}

Also check that your Cursor object isn't null as below...

if(cursorKvart != null && cursorKvart.getCount() > 0) {

    while (cursorKvart.moveToNext()) {

        ......

    }

}

这篇关于java.lang.RuntimeException的:无法启动的活动ComponentInfo {...}:显示java.lang.NullPointerException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆