Java 致命异常:main,尝试对空对象引用调用虚拟方法

Java 致命异常:main,尝试对空对象引用调用虚拟方法,java,android,sqlite,nullpointerexception,Java,Android,Sqlite,Nullpointerexception,我启动应用程序时遇到问题。我得到这个问题,尝试调用一个空对象引用上的虚拟方法。我想这是因为我没有正确创建LoadJobList的实例,但我不能完全确定 [ 10-30 07:24:10.779 1506: 1551 D/] HostConnection::get() New Host Connection established 0x949247c0, tid 1551 10-30 07:24:11.120 2774-2774/? E/AndroidRuntime: FATAL EXC

我启动应用程序时遇到问题。我得到这个问题,尝试调用一个空对象引用上的虚拟方法。我想这是因为我没有正确创建LoadJobList的实例,但我不能完全确定

[ 10-30 07:24:10.779  1506: 1551 D/]
HostConnection::get() New Host Connection established 0x949247c0, tid 1551
    10-30 07:24:11.120 2774-2774/? E/AndroidRuntime: FATAL EXCEPTION: main
                                                     Process: com.example.joelg.clapp, PID: 2774
                                                     java.lang.RuntimeException: Unable to start activity 

        ComponentInfo{com.example.joelg.clapp/com.example.joelg.clapp.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList com.example.joelg.clapp.IntDataBaseHelper.getJobList()' on a null object reference
                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
                                                             at android.app.ActivityThread.-wrap11(Unknown Source:0)
                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
                                                             at android.os.Handler.dispatchMessage(Handler.java:105)
                                                             at android.os.Looper.loop(Looper.java:164)
                                                             at android.app.ActivityThread.main(ActivityThread.java:6541)
                                                             at java.lang.reflect.Method.invoke(Native Method)
                                                             at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
                                                          Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList com.example.joelg.clapp.IntDataBaseHelper.getJobList()' on a null object reference
                                                             at com.example.joelg.clapp.MainActivity.LoadJobList(MainActivity.java:52)
                                                             at com.example.joelg.clapp.MainActivity.onCreate(MainActivity.java:31)
                                                             at android.app.Activity.performCreate(Activity.java:6975)
                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)
                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)
                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) 
                                                             at android.app.ActivityThread.-wrap11(Unknown Source:0) 
                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) 
                                                             at android.os.Handler.dispatchMessage(Handler.java:105) 
                                                             at android.os.Looper.loop(Looper.java:164) 
                                                             at android.app.ActivityThread.main(ActivityThread.java:6541) 
                                                             at java.lang.reflect.Method.invoke(Native Method) 
                                                             at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 
主要活动[已编辑]

[ 10-30 07:24:10.779  1506: 1551 D/]
HostConnection::get() New Host Connection established 0x949247c0, tid 1551
    10-30 07:24:11.120 2774-2774/? E/AndroidRuntime: FATAL EXCEPTION: main
                                                     Process: com.example.joelg.clapp, PID: 2774
                                                     java.lang.RuntimeException: Unable to start activity 

        ComponentInfo{com.example.joelg.clapp/com.example.joelg.clapp.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList com.example.joelg.clapp.IntDataBaseHelper.getJobList()' on a null object reference
                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
                                                             at android.app.ActivityThread.-wrap11(Unknown Source:0)
                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
                                                             at android.os.Handler.dispatchMessage(Handler.java:105)
                                                             at android.os.Looper.loop(Looper.java:164)
                                                             at android.app.ActivityThread.main(ActivityThread.java:6541)
                                                             at java.lang.reflect.Method.invoke(Native Method)
                                                             at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
                                                          Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList com.example.joelg.clapp.IntDataBaseHelper.getJobList()' on a null object reference
                                                             at com.example.joelg.clapp.MainActivity.LoadJobList(MainActivity.java:52)
                                                             at com.example.joelg.clapp.MainActivity.onCreate(MainActivity.java:31)
                                                             at android.app.Activity.performCreate(Activity.java:6975)
                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)
                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)
                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) 
                                                             at android.app.ActivityThread.-wrap11(Unknown Source:0) 
                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) 
                                                             at android.os.Handler.dispatchMessage(Handler.java:105) 
                                                             at android.os.Looper.loop(Looper.java:164) 
                                                             at android.app.ActivityThread.main(ActivityThread.java:6541) 
                                                             at java.lang.reflect.Method.invoke(Native Method) 
                                                             at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 
公共类MainActivity扩展了AppCompatActivity{

IntDataBaseHelper intDataBaseHelper;
ArrayAdapter<String> mAdapter;
ListView lstJob;


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

/// create instance of db helper and jobs

    IntDataBaseHelper myhelper = new IntDataBaseHelper(this);
    lstJob = (ListView)findViewById(R.id.lstJob);
    LoadJobList();

    //  Create the database (only if it doesn't exists)
    //  does so by copying from the assets
    if (CopyDBFromAssets.createDataBase(this,IntDataBaseHelper.DB_NAME)) {


        // Get the data from the database
        ArrayList<String> jobs = intDataBaseHelper.getJobList();
        for (String s : jobs) {
            Log.d("JobList", "Found Job " + s);
        }
    } else {
        throw new RuntimeException("No Usable Database exists or was copied from the assets.");
    }
}


   // loads job to screen
    private void LoadJobList() {

       ArrayList<String> Joblist = intDataBaseHelper.getJobList();
       if (mAdapter == null) {
           mAdapter = new ArrayAdapter<String>(this,R.layout.header,R.id.header);
           mAdapter = new ArrayAdapter<>(this,R.layout.row,R.id.BtnComplete);
           mAdapter = new ArrayAdapter<>(this, R.layout.row, R.id.Job_name,Joblist);

           lstJob.setAdapter(mAdapter);
       } else {
           mAdapter.clear();
           mAdapter.addAll(Joblist);
           mAdapter.notifyDataSetChanged();
       }
   }


   public void JobComplete(View view){
   View parent = (View)view.getParent();
   TextView taskTextView=(TextView)parent.findViewById(R.id.BtnComplete);
   Log.e("String",(String) taskTextView.getText());

  }
}
[ 10-30 07:24:10.779  1506: 1551 D/]
HostConnection::get() New Host Connection established 0x949247c0, tid 1551
    10-30 07:24:11.120 2774-2774/? E/AndroidRuntime: FATAL EXCEPTION: main
                                                     Process: com.example.joelg.clapp, PID: 2774
                                                     java.lang.RuntimeException: Unable to start activity 

        ComponentInfo{com.example.joelg.clapp/com.example.joelg.clapp.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList com.example.joelg.clapp.IntDataBaseHelper.getJobList()' on a null object reference
                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
                                                             at android.app.ActivityThread.-wrap11(Unknown Source:0)
                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
                                                             at android.os.Handler.dispatchMessage(Handler.java:105)
                                                             at android.os.Looper.loop(Looper.java:164)
                                                             at android.app.ActivityThread.main(ActivityThread.java:6541)
                                                             at java.lang.reflect.Method.invoke(Native Method)
                                                             at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
                                                          Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList com.example.joelg.clapp.IntDataBaseHelper.getJobList()' on a null object reference
                                                             at com.example.joelg.clapp.MainActivity.LoadJobList(MainActivity.java:52)
                                                             at com.example.joelg.clapp.MainActivity.onCreate(MainActivity.java:31)
                                                             at android.app.Activity.performCreate(Activity.java:6975)
                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)
                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)
                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) 
                                                             at android.app.ActivityThread.-wrap11(Unknown Source:0) 
                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) 
                                                             at android.os.Handler.dispatchMessage(Handler.java:105) 
                                                             at android.os.Looper.loop(Looper.java:164) 
                                                             at android.app.ActivityThread.main(ActivityThread.java:6541) 
                                                             at java.lang.reflect.Method.invoke(Native Method) 
                                                             at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 
getJobList方法

[ 10-30 07:24:10.779  1506: 1551 D/]
HostConnection::get() New Host Connection established 0x949247c0, tid 1551
    10-30 07:24:11.120 2774-2774/? E/AndroidRuntime: FATAL EXCEPTION: main
                                                     Process: com.example.joelg.clapp, PID: 2774
                                                     java.lang.RuntimeException: Unable to start activity 

        ComponentInfo{com.example.joelg.clapp/com.example.joelg.clapp.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList com.example.joelg.clapp.IntDataBaseHelper.getJobList()' on a null object reference
                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
                                                             at android.app.ActivityThread.-wrap11(Unknown Source:0)
                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
                                                             at android.os.Handler.dispatchMessage(Handler.java:105)
                                                             at android.os.Looper.loop(Looper.java:164)
                                                             at android.app.ActivityThread.main(ActivityThread.java:6541)
                                                             at java.lang.reflect.Method.invoke(Native Method)
                                                             at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
                                                          Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList com.example.joelg.clapp.IntDataBaseHelper.getJobList()' on a null object reference
                                                             at com.example.joelg.clapp.MainActivity.LoadJobList(MainActivity.java:52)
                                                             at com.example.joelg.clapp.MainActivity.onCreate(MainActivity.java:31)
                                                             at android.app.Activity.performCreate(Activity.java:6975)
                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)
                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)
                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) 
                                                             at android.app.ActivityThread.-wrap11(Unknown Source:0) 
                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) 
                                                             at android.os.Handler.dispatchMessage(Handler.java:105) 
                                                             at android.os.Looper.loop(Looper.java:164) 
                                                             at android.app.ActivityThread.main(ActivityThread.java:6541) 
                                                             at java.lang.reflect.Method.invoke(Native Method) 
                                                             at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 
  public  ArrayList<String> getJobList() {
        ArrayList<String> JobList = new ArrayList<>();
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor =  db.query(DB_TABLE,new String[]
                {DB_COLUMN},null,null,null,null,null);
        while(cursor.moveToNext()){
            int index = cursor.getColumnIndex(DB_COLUMN);
            JobList.add(cursor.getString(index));
        }

        cursor.close();
        db.close();
        return JobList;
    }
public ArrayList getJobList(){
ArrayList作业列表=新建ArrayList();
SQLiteDatabase db=this.getReadableDatabase();
Cursor Cursor=db.query(db_表,新字符串[])
{DB_COLUMN},null,null,null,null,null,null);
while(cursor.moveToNext()){
int index=cursor.getColumnIndex(DB_列);
JobList.add(cursor.getString(index));
}
cursor.close();
db.close();
返回工作清单;
}
DB助手类

[ 10-30 07:24:10.779  1506: 1551 D/]
HostConnection::get() New Host Connection established 0x949247c0, tid 1551
    10-30 07:24:11.120 2774-2774/? E/AndroidRuntime: FATAL EXCEPTION: main
                                                     Process: com.example.joelg.clapp, PID: 2774
                                                     java.lang.RuntimeException: Unable to start activity 

        ComponentInfo{com.example.joelg.clapp/com.example.joelg.clapp.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList com.example.joelg.clapp.IntDataBaseHelper.getJobList()' on a null object reference
                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
                                                             at android.app.ActivityThread.-wrap11(Unknown Source:0)
                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
                                                             at android.os.Handler.dispatchMessage(Handler.java:105)
                                                             at android.os.Looper.loop(Looper.java:164)
                                                             at android.app.ActivityThread.main(ActivityThread.java:6541)
                                                             at java.lang.reflect.Method.invoke(Native Method)
                                                             at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
                                                          Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList com.example.joelg.clapp.IntDataBaseHelper.getJobList()' on a null object reference
                                                             at com.example.joelg.clapp.MainActivity.LoadJobList(MainActivity.java:52)
                                                             at com.example.joelg.clapp.MainActivity.onCreate(MainActivity.java:31)
                                                             at android.app.Activity.performCreate(Activity.java:6975)
                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)
                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)
                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) 
                                                             at android.app.ActivityThread.-wrap11(Unknown Source:0) 
                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) 
                                                             at android.os.Handler.dispatchMessage(Handler.java:105) 
                                                             at android.os.Looper.loop(Looper.java:164) 
                                                             at android.app.ActivityThread.main(ActivityThread.java:6541) 
                                                             at java.lang.reflect.Method.invoke(Native Method) 
                                                             at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 
package com.example.joelg.clapp;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;

/**
 * Created by joelg on 22/10/2017.
 */
public class IntDataBaseHelper extends SQLiteOpenHelper{


        public static  String DB_PATH ="//data/data/com.example.joelg.clapp/databases";
        public static final String DB_NAME = "JobList";
        private static final String DB_COLUMN = "jobNM";
        private static final String DB_TABLE = "job";
        public static final String DB_JOB_DETAILS = "jobDetails";
        private static final String DB_ISDONE = "jobIsDone";
        private SQLiteDatabase JobListDatabase;
        private final Context jobContext;


        /**
         * constructor t
         */
        public IntDataBaseHelper (Context context) {

            super (context, DB_NAME,null, 1);
            this.jobContext = context;
            DB_PATH = jobContext.getDatabasePath(DB_NAME).getPath();
        }


        public void openDataBase() {
            // open the database
            String JobListPath = DB_PATH;
            JobListDatabase = SQLiteDatabase.openDatabase(
                    JobListPath,null,SQLiteDatabase.OPEN_READONLY);
        }

        // Getting Job Count
        public  ArrayList<String> getJobList() {
            ArrayList<String> JobList = new ArrayList<>();
            SQLiteDatabase db = this.getReadableDatabase();
            Cursor cursor =  db.query(DB_TABLE,new String[]
                    {DB_COLUMN},null,null,null,null,null);
            while(cursor.moveToNext()){
                int index = cursor.getColumnIndex(DB_COLUMN);
                JobList.add(cursor.getString(index));
            }

            cursor.close();
            db.close();
            return JobList;
        }


        // Gets the job state if it has been competed or not
        public ArrayList<String> getIsDone() {
            ArrayList<String>  IsDone = new ArrayList<>();
            SQLiteDatabase db = this.getReadableDatabase();
            Cursor cursor = db.query(DB_TABLE,new String[]{DB_ISDONE},null,null,null,null,null);
               while(cursor.moveToFirst()){
                   int index = cursor.getColumnIndex(DB_ISDONE);
                   IsDone.add(cursor.getString(index));
               }

               cursor.close();
               db.close();
               return IsDone;
         }




        @Override
        public synchronized void close(){

            if(JobListDatabase !=null){
                JobListDatabase.close();

                super.close();
            }
        }
        @Override
        public  void onCreate(SQLiteDatabase db) {

        }
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        }
    }
package com.example.joelg.clapp;
导入android.content.Context;
导入android.database.Cursor;
导入android.database.sqlite.SQLiteDatabase;
导入android.database.sqlite.SQLiteException;
导入android.database.sqlite.SQLiteOpenHelper;
导入android.util.Log;
导入java.io.FileOutputStream;
导入java.io.IOException;
导入java.io.InputStream;
导入java.io.OutputStream;
导入java.util.ArrayList;
/**
*由joelg于2017年10月22日创建。
*/
公共类IntDataBaseHelper扩展了SQLiteOpenHelper{
公共静态字符串DB_PATH=“//data/data/com.example.joelg.clapp/databases”;
公共静态最终字符串DB_NAME=“作业列表”;
私有静态最终字符串DB_COLUMN=“jobNM”;
私有静态最终字符串DB_TABLE=“job”;
公共静态最终字符串DB\u JOB\u DETAILS=“jobDetails”;
私有静态最终字符串DB_ISDONE=“jobistone”;
私有SQLiteDatabase-JobListDatabase;
私人最终语境;
/**
*构造函数t
*/
公共IntDataBaseHelper(上下文){
super(上下文,DB_名称,null,1);
this.jobContext=context;
DB_PATH=jobContext.getDatabasePath(DB_NAME.getPath();
}
公共void openDataBase(){
//打开数据库
字符串JobListPath=DB\u路径;
JobListDatabase=SQLiteDatabase.openDatabase(
JobListPath,null,SQLiteDatabase.OPEN\u READONLY);
}
//获得工作计数
公共阵列列表getJobList(){
ArrayList作业列表=新建ArrayList();
SQLiteDatabase db=this.getReadableDatabase();
Cursor Cursor=db.query(db_表,新字符串[])
{DB_COLUMN},null,null,null,null,null,null);
while(cursor.moveToNext()){
int index=cursor.getColumnIndex(DB_列);
JobList.add(cursor.getString(index));
}
cursor.close();
db.close();
返回工作清单;
}
//获取作业状态(如果已竞争或未竞争)
公共阵列列表getIsDone(){
ArrayList IsDone=新的ArrayList();
SQLiteDatabase db=this.getReadableDatabase();
Cursor Cursor=db.query(db_TABLE,新字符串[]{db_ISDONE},null,null,null,null);
while(cursor.moveToFirst()){
int index=cursor.getColumnIndex(DB_ISDONE);
add(cursor.getString(index));
}
cursor.close();
db.close();
返回IsDone;
}
@凌驾
公共同步作废关闭(){
if(JobListDatabase!=null){
JobListDatabase.close();
super.close();
}
}
@凌驾
public void onCreate(SQLiteDatabase db){
}
@凌驾
public void onUpgrade(SQLiteDatabase db,int-oldVersion,int-newVersion){
}
}

公共类MainActivity扩展了AppCompatActivity{
[ 10-30 07:24:10.779  1506: 1551 D/]
HostConnection::get() New Host Connection established 0x949247c0, tid 1551
    10-30 07:24:11.120 2774-2774/? E/AndroidRuntime: FATAL EXCEPTION: main
                                                     Process: com.example.joelg.clapp, PID: 2774
                                                     java.lang.RuntimeException: Unable to start activity 

        ComponentInfo{com.example.joelg.clapp/com.example.joelg.clapp.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList com.example.joelg.clapp.IntDataBaseHelper.getJobList()' on a null object reference
                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
                                                             at android.app.ActivityThread.-wrap11(Unknown Source:0)
                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
                                                             at android.os.Handler.dispatchMessage(Handler.java:105)
                                                             at android.os.Looper.loop(Looper.java:164)
                                                             at android.app.ActivityThread.main(ActivityThread.java:6541)
                                                             at java.lang.reflect.Method.invoke(Native Method)
                                                             at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
                                                          Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList com.example.joelg.clapp.IntDataBaseHelper.getJobList()' on a null object reference
                                                             at com.example.joelg.clapp.MainActivity.LoadJobList(MainActivity.java:52)
                                                             at com.example.joelg.clapp.MainActivity.onCreate(MainActivity.java:31)
                                                             at android.app.Activity.performCreate(Activity.java:6975)
                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)
                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)
                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) 
                                                             at android.app.ActivityThread.-wrap11(Unknown Source:0) 
                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) 
                                                             at android.os.Handler.dispatchMessage(Handler.java:105) 
                                                             at android.os.Looper.loop(Looper.java:164) 
                                                             at android.app.ActivityThread.main(ActivityThread.java:6541) 
                                                             at java.lang.reflect.Method.invoke(Native Method) 
                                                             at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 
IntDataBaseHelper IntDataBaseHelper; ArrayAdapter mAdapter; ListView作业; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.header);
///创建db助手和作业的实例

[ 10-30 07:24:10.779  1506: 1551 D/]
HostConnection::get() New Host Connection established 0x949247c0, tid 1551
    10-30 07:24:11.120 2774-2774/? E/AndroidRuntime: FATAL EXCEPTION: main
                                                     Process: com.example.joelg.clapp, PID: 2774
                                                     java.lang.RuntimeException: Unable to start activity 

        ComponentInfo{com.example.joelg.clapp/com.example.joelg.clapp.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList com.example.joelg.clapp.IntDataBaseHelper.getJobList()' on a null object reference
                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
                                                             at android.app.ActivityThread.-wrap11(Unknown Source:0)
                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
                                                             at android.os.Handler.dispatchMessage(Handler.java:105)
                                                             at android.os.Looper.loop(Looper.java:164)
                                                             at android.app.ActivityThread.main(ActivityThread.java:6541)
                                                             at java.lang.reflect.Method.invoke(Native Method)
                                                             at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
                                                          Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList com.example.joelg.clapp.IntDataBaseHelper.getJobList()' on a null object reference
                                                             at com.example.joelg.clapp.MainActivity.LoadJobList(MainActivity.java:52)
                                                             at com.example.joelg.clapp.MainActivity.onCreate(MainActivity.java:31)
                                                             at android.app.Activity.performCreate(Activity.java:6975)
                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)
                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)
                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) 
                                                             at android.app.ActivityThread.-wrap11(Unknown Source:0) 
                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) 
                                                             at android.os.Handler.dispatchMessage(Handler.java:105) 
                                                             at android.os.Looper.loop(Looper.java:164) 
                                                             at android.app.ActivityThread.main(ActivityThread.java:6541) 
                                                             at java.lang.reflect.Method.invoke(Native Method) 
                                                             at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 
    intDataBaseHelper = new IntDataBaseHelper(this);
    lstJob = (ListView)findViewById(R.id.lstJob);
    LoadJobList();

    //  Create the database (only if it doesn't exists)
    //  does so by copying from the assets
    if (CopyDBFromAssets.createDataBase(this,IntDataBaseHelper.DB_NAME)) {


        // Get the data from the database
        ArrayList<String> jobs = myhelper.getJobList();
        for (String s : jobs) {
            Log.d("JobList", "Found Job " + s);
        }
    } else {
        throw new RuntimeException("No Usable Database exists or was copied from the assets.");
    }
}


   // loads job to screen
    private void LoadJobList() {

       ArrayList<String> Joblist = intDataBaseHelper.getJobList();
       if (mAdapter == null) {
           mAdapter = new ArrayAdapter<String>(this,R.layout.header,R.id.header);
           mAdapter = new ArrayAdapter<>(this,R.layout.row,R.id.BtnComplete);
           mAdapter = new ArrayAdapter<>(this, R.layout.row, R.id.Job_name,Joblist);

           lstJob.setAdapter(mAdapter);
       } else {
           mAdapter.clear();
           mAdapter.addAll(Joblist);
           mAdapter.notifyDataSetChanged();
       }
   }


   public void JobComplete(View view){
   View parent = (View)view.getParent();
   TextView taskTextView=(TextView)parent.findViewById(R.id.BtnComplete);
   Log.e("String",(String) taskTextView.getText());
intDataBaseHelper=新的intDataBaseHelper(此);
lstJob=(ListView)findViewById(R.id.lstJob);
LoadJobList();
//创建数据库(仅当数据库不存在时)
//通过从资产中复制来实现
if(CopyDBFromAssets.createDataBase(这个,IntDataBaseHelper.DB_名称)){
//从数据库中获取数据
ArrayList jobs=myhelper.getJobList();
用于(字符串s:作业){
日志d(“作业列表”、“找到的作业”+s);
}
}否则{
抛出新的RuntimeException(“不存在可用的数据库或从资产中复制了可用的数据库”);
}
}
//将作业加载到屏幕
私有void LoadJobList(){
ArrayList作业列表=intDataBaseHelper.getJobList();
if(mAdapter==null){
mAdapter=newarrayadapter(这个,R.layout.header,R.id.header);
mAdapter=newarrayadapter(this,R.layout.row,R.id.BtnComplete);
mAdapter=newarrayadapter(这个,R.layout.row,R.id.Job\u名称,Joblist);
lstJob.setAdapter(mAdapter);
}否则{
mAdapter.clear();
mAdapter.addAll(工作列表);
mAdapter.notifyDataSetChanged();
}
}
public void作业完成(视图){
View parent=(View)View.getParent();
TextView taskTextView=(TextView)parent.findViewById(R.id.BtnComplete);
e(“String”,(String)taskTextView.getText();
} }

[ 10-30 07:24:10.779  1506: 1551 D/]
HostConnection::get() New Host Connection established 0x949247c0, tid 1551
    10-30 07:24:11.120 2774-2774/? E/AndroidRuntime: FATAL EXCEPTION: main
                                                     Process: com.example.joelg.clapp, PID: 2774
                                                     java.lang.RuntimeException: Unable to start activity 

        ComponentInfo{com.example.joelg.clapp/com.example.joelg.clapp.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList com.example.joelg.clapp.IntDataBaseHelper.getJobList()' on a null object reference
                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
                                                             at android.app.ActivityThread.-wrap11(Unknown Source:0)
                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
                                                             at android.os.Handler.dispatchMessage(Handler.java:105)
                                                             at android.os.Looper.loop(Looper.java:164)
                                                             at android.app.ActivityThread.main(ActivityThread.java:6541)
                                                             at java.lang.reflect.Method.invoke(Native Method)
                                                             at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
                                                          Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList com.example.joelg.clapp.IntDataBaseHelper.getJobList()' on a null object reference
                                                             at com.example.joelg.clapp.MainActivity.LoadJobList(MainActivity.java:52)
                                                             at com.example.joelg.clapp.MainActivity.onCreate(MainActivity.java:31)
                                                             at android.app.Activity.performCreate(Activity.java:6975)
                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)
                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)
                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) 
                                                             at android.app.ActivityThread.-wrap11(Unknown Source:0) 
                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) 
                                                             at android.os.Handler.dispatchMessage(Handler.java:105) 
                                                             at android.os.Looper.loop(Looper.java:164) 
                                                             at android.app.ActivityThread.main(ActivityThread.java:6541) 
                                                             at java.lang.reflect.Method.invoke(Native Method) 
                                                             at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 

名为intDataBaseHelper的对象从未初始化,因此它为空。

初始化
intDataBaseHelper
并使用它,如下所示

[ 10-30 07:24:10.779  1506: 1551 D/]
HostConnection::get() New Host Connection established 0x949247c0, tid 1551
    10-30 07:24:11.120 2774-2774/? E/AndroidRuntime: FATAL EXCEPTION: main
                                                     Process: com.example.joelg.clapp, PID: 2774
                                                     java.lang.RuntimeException: Unable to start activity 

        ComponentInfo{com.example.joelg.clapp/com.example.joelg.clapp.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList com.example.joelg.clapp.IntDataBaseHelper.getJobList()' on a null object reference
                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
                                                             at android.app.ActivityThread.-wrap11(Unknown Source:0)
                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
                                                             at android.os.Handler.dispatchMessage(Handler.java:105)
                                                             at android.os.Looper.loop(Looper.java:164)
                                                             at android.app.ActivityThread.main(ActivityThread.java:6541)
                                                             at java.lang.reflect.Method.invoke(Native Method)
                                                             at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
                                                          Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList com.example.joelg.clapp.IntDataBaseHelper.getJobList()' on a null object reference
                                                             at com.example.joelg.clapp.MainActivity.LoadJobList(MainActivity.java:52)
                                                             at com.example.joelg.clapp.MainActivity.onCreate(MainActivity.java:31)
                                                             at android.app.Activity.performCreate(Activity.java:6975)
                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)
                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)
                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) 
                                                             at android.app.ActivityThread.-wrap11(Unknown Source:0) 
                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) 
                                                             at android.os.Handler.dispatchMessage(Handler.java:105) 
                                                             at android.os.Looper.loop(Looper.java:164) 
                                                             at android.app.ActivityThread.main(ActivityThread.java:6541) 
                                                             at java.lang.reflect.Method.invoke(Native Method) 
                                                             at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 
因此,该方法将是有效的

[ 10-30 07:24:10.779  1506: 1551 D/]
HostConnection::get() New Host Connection established 0x949247c0, tid 1551
    10-30 07:24:11.120 2774-2774/? E/AndroidRuntime: FATAL EXCEPTION: main
                                                     Process: com.example.joelg.clapp, PID: 2774
                                                     java.lang.RuntimeException: Unable to start activity 

        ComponentInfo{com.example.joelg.clapp/com.example.joelg.clapp.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList com.example.joelg.clapp.IntDataBaseHelper.getJobList()' on a null object reference
                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
                                                             at android.app.ActivityThread.-wrap11(Unknown Source:0)
                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
                                                             at android.os.Handler.dispatchMessage(Handler.java:105)
                                                             at android.os.Looper.loop(Looper.java:164)
                                                             at android.app.ActivityThread.main(ActivityThread.java:6541)
                                                             at java.lang.reflect.Method.invoke(Native Method)
                                                             at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
                                                          Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList com.example.joelg.clapp.IntDataBaseHelper.getJobList()' on a null object reference
                                                             at com.example.joelg.clapp.MainActivity.LoadJobList(MainActivity.java:52)
                                                             at com.example.joelg.clapp.MainActivity.onCreate(MainActivity.java:31)
                                                             at android.app.Activity.performCreate(Activity.java:6975)
                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)
                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)
                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) 
                                                             at android.app.ActivityThread.-wrap11(Unknown Source:0) 
                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) 
                                                             at android.os.Handler.dispatchMessage(Handler.java:105) 
                                                             at android.os.Looper.loop(Looper.java:164) 
                                                             at android.app.ActivityThread.main(ActivityThread.java:6541) 
                                                             at java.lang.reflect.Method.invoke(Native Method) 
                                                             at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 
public class MainActivity extends AppCompatActivity {

    IntDataBaseHelper intDataBaseHelper;
    ArrayAdapter<String> mAdapter;
    ListView lstJob;


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

/// create instance of db helper and jobs

        intDataBaseHelper = new IntDataBaseHelper(this);
        lstJob = (ListView)findViewById(R.id.lstJob);
        LoadJobList();

        //  Create the database (only if it doesn't exists)
        //  does so by copying from the assets
        if (CopyDBFromAssets.createDataBase(this,IntDataBaseHelper.DB_NAME)) {


            // Get the data from the database
            ArrayList<String> jobs = intDataBaseHelper.getJobList();
            for (String s : jobs) {
                Log.d("JobList", "Found Job " + s);
            }
        } else {
            throw new RuntimeException("No Usable Database exists or was copied from the assets.");
        }
    }


       // loads job to screen
        private void LoadJobList() {

           ArrayList<String> Joblist = intDataBaseHelper.getJobList();
           if (mAdapter == null) {
               mAdapter = new ArrayAdapter<String>(this,R.layout.header,R.id.header);
               mAdapter = new ArrayAdapter<>(this,R.layout.row,R.id.BtnComplete);
               mAdapter = new ArrayAdapter<>(this, R.layout.row, R.id.Job_name,Joblist);

               lstJob.setAdapter(mAdapter);
           } else {
               mAdapter.clear();
               mAdapter.addAll(Joblist);
               mAdapter.notifyDataSetChanged();
           }
       }


       public void JobComplete(View view){
       View parent = (View)view.getParent();
       TextView taskTextView=(TextView)parent.findViewById(R.id.BtnComplete);
       Log.e("String",(String) taskTextView.getText());

   }
}
public类MainActivity扩展了AppCompatActivity{
IntDat