Java Android错误[尝试调用布尔虚拟方法';void DatabaseHelper.Insert()';';对空对象引用]

Java Android错误[尝试调用布尔虚拟方法';void DatabaseHelper.Insert()';';对空对象引用],java,android,database,sqlite,import,Java,Android,Database,Sqlite,Import,我有两个类,我正试图通过我创建的getter和setter将我在其他类中的值传递到db中,但是我得到了异常,我的应用程序在我单击“保存”按钮时崩溃。请有人查看一下。已经三天了,我似乎无法解决它。谢谢 以下是我的两门课: /** * Created by Sanya on 11/22/2015. */ public class User_overlay_save extends Activity implements View.OnClickListene

我有两个类,我正试图通过我创建的getter和setter将我在其他类中的值传递到db中,但是我得到了异常,我的应用程序在我单击“保存”按钮时崩溃。请有人查看一下。已经三天了,我似乎无法解决它。谢谢 以下是我的两门课:

/**
 * Created by Sanya on 11/22/2015.
 */
                   public class User_overlay_save extends Activity implements View.OnClickListener
  {
    private static int RESULT_LOAD_IMAGE = 1;
    private static int RESULT_LOAD_VIDEO = 2;
    private int position = 0;
    private SQLiteDatabase db; DatabaseHelper helper;
    File myapp;
    private MediaController mediaControls;

    Button save_button;
    ImageButton vid_button,img_button;
    EditText  name_overlay;
   TextView real_Imgpath, real_Vidpath;

protected void onCreate(Bundle savedInstanceState){
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.user_overlay_save);

    save_button=(Button)findViewById(R.id.save_Ouser);

    img_button=(ImageButton)findViewById(R.id.img_button);
    vid_button=(ImageButton)findViewById(R.id.vid_button);

    real_Imgpath =(TextView)findViewById(R.id.real_Imgpath);
    real_Vidpath =(TextView)findViewById(R.id.real_Vidpath);

    name_overlay=(EditText)findViewById(R.id.name_overlay);

    save_button.setOnClickListener(this);
    img_button.setOnClickListener(this);
    vid_button.setOnClickListener(this);

    name_overlay.setOnClickListener(this);

        }


    @Override
    public void onClick(View v) {

        switch (v.getId()) {

            case R.id.save_Ouser:
            {
               boolean result= helper.Insert();

                if(result==true)
                {
                    Toast.makeText(getApplicationContext(), "saved..in DB..!!!",
                            Toast.LENGTH_LONG).show();
                }
else
                {
                    Toast.makeText(getApplicationContext(), "ERROR--the path could not b saved..!!",
                            Toast.LENGTH_LONG).show();
                }
            }


            break;
            case R.id.img_button:

                Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

               startActivityForResult(i, RESULT_LOAD_IMAGE);
                break;
            case R.id.vid_button:
                Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI);
                startActivityForResult(intent, RESULT_LOAD_VIDEO);

                break;

        }
    }
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            String realPath;
//FOR IMAGE PATH SAVING
        if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
            String selectedImagePath;
            Uri selectedImageUri = data.getData();
//媒体画廊

     selectedImagePath =       ImageFilePath.getPath(getApplicationContext(), selectedImageUri);
        Log.i("Image-->File Path-->", " " + selectedImagePath);
        setImgTextViews(Build.VERSION.SDK_INT, selectedImagePath);
        SET_saveImg(selectedImagePath);
    }
          else if(Build.VERSION.SDK_INT < 19)
            {
            realPath = this.getRealPathFromURI_FromAPI11_18(this, data.getData());
                setImgTextViews(Build.VERSION.SDK_INT, realPath);
            }
//----------->>>>>>>>>>>---------->>>>FOR VIDEO PATH SAVING------>>>>>>------------>>>>>>>>>>>-------->>>>>>>>>---------->>>>

        if (requestCode == RESULT_LOAD_VIDEO && resultCode == RESULT_OK && null != data)
        {
//FOR VIDEO PATH SAVING
            String selectedVidPath;
            Uri selectedVidUri = data.getData();

//VIDEO____PLAY___LIST
            selectedVidPath = ImageFilePath.getPath(getApplicationContext(), selectedVidUri);
            Log.i("VIDEO-->File Path-->", "" + selectedVidPath);
            setVIDTextViews(Build.VERSION.SDK_INT, selectedVidPath);
            SET_saveVid(selectedVidPath);
        }
    }

    public String getRealPathFromURI_FromAPI11_18(Context context, Uri contentUri)
    {
        String[] proj = { MediaStore.Images.Media.DATA };
        String result = null;

        CursorLoader cursorLoader = new CursorLoader(context, contentUri, proj, null, null, null);
        Cursor cursor = cursorLoader.loadInBackground();

        if(cursor != null){
            int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
            cursor.moveToFirst();
            result = cursor.getString(column_index);
        }
        return result;
    }


    protected void setImgTextViews(int sdk,String realPath){


    this.real_Imgpath.setText
           ("CURRENT VERSION--SDK-->"+sdk+"Real Path: "+realPath);

}
         protected void setVIDTextViews(int sdk,String realPath)
    {
               this.real_Vidpath.setText
            ("CURRENT VERSION--SDK-->"+sdk+"Real Path: "+realPath);
    }

//---->>------>>>------->>>>SETTERS--FOR IMAGE-->SET_saveImg(selectedImagePath) For &VIDEO -->>SET_saveVid(selectedVidPath)--->>AND--->>GETTERS FOR IMAGE AND VIDEO--------->>>>>

String realPath; String vidPath;
public String GET_saveImg()//IS CALLED FROM DATABASE_HELPER CLASS TO PROVIDE THE SETTER VALUES
{
    return realPath;
}

protected void SET_saveImg(String realPath)
{
    this.realPath=realPath;

}
      protected String GET_saveVid()
{
    return vidPath;
}
     protected void SET_saveVid(String vidPath)
{
  this.vidPath= vidPath;
}}

您的DatabaseHelper对象助手是
null
。因为您刚刚声明了它,没有定义任何地方

put
helper=newdatabasehelper(如果有任何参数)
在“保存”按钮上设置onClickListener之前,在内部创建

protected void onCreate(Bundle savedInstanceState){
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.user_overlay_save);

        ...........................
        helper = new DatabaseHelper();
        save_button.setOnClickListener(this);

        ..................

}

谢谢你的回复,我试过了,但现在它给出了sqlite E/ActivityThread的例外:com.android.internal.os.ZygoteInit.main(ZygoteInit.java:740)11-24 22:55:40.905 15416-15416/com.example.sana.ar_expeditor E/SQLiteLog:(1)表映像没有名为image SQLiteDatabase的列:错误插入image=null file=nullSQLiteDatabase:android.database.sqlite.SQLiteException:表映像没有名为image的列(代码1):,编译时:插入到映像(映像,文件)值(?),请参阅并感谢您的帮助,它解决了所需的问题:)
protected void onCreate(Bundle savedInstanceState){
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.user_overlay_save);

        ...........................
        helper = new DatabaseHelper();
        save_button.setOnClickListener(this);

        ..................

}