title: Android errors when using code from stackoverflow to implement sqlite database
body: <p>I get this error: class "DataBaseHelper" must either be abstract or implement abstract method.</p>
  
  <p>When running code i found and stackoverflow, this is where i got the code: <a href="https://stackoverflow.com/questions/14541898/how-to-use-my-own-database-android">How to use my own database - android</a> </p>
  
  <p>It's the first part where i get errors, second part is working fine. </p>
  
  <p>code:</p>
  
  <pre><code>import java.io.File;
  import java.io.FileOutputStream;
  import java.io.IOException;
  import java.io.InputStream;
  import java.io.OutputStream;
  
  import android.content.Context;
  import android.database.SQLException;
  import android.database.sqlite.SQLiteDatabase;
  import android.database.sqlite.SQLiteOpenHelper;
  import android.util.Log;
  
  public class DataBaseHelper extends SQLiteOpenHelper
  {
      private static String TAG = "DataBaseHelper"; // Tag just for the LogCat window
      //destination path (location) of our database on device
      private static String DB_PATH = "";
      private static String DB_NAME ="menuStat.db.sqlite";// Database name
      private SQLiteDatabase mDataBase;
      private final Context mContext;
  
      public DataBaseHelper(Context context)
      {
           super(context, DB_NAME, null, 1);// 1? its Database Version
           if(android.os.Build.VERSION.SDK_INT &gt;= 17){
                DB_PATH = context.getApplicationInfo().dataDir + "/databases/";
           }
           else
           {
                DB_PATH = "/data/data/" + context.getPackageName() + "/databases/";
           }
           this.mContext = context;
      }
  
      public void createDataBase() throws IOException
      {
          //If database not exists copy it from the assets
  
          boolean mDataBaseExist = checkDataBase();
          if(!mDataBaseExist)
          {
               this.getReadableDatabase();
               this.close();
               try
               {
                    //Copy the database from assests
                    copyDataBase();
                    Log.e(TAG, "createDatabase database created");
               }
               catch (IOException mIOException)
               {
                   throw new Error("ErrorCopyingDataBase");
               }
           }
       }
  
       //Check that the database exists here: /data/data/your package/databases/Da Name
       private boolean checkDataBase()
       {
           File dbFile = new File(DB_PATH + DB_NAME);
           //Log.v("dbFile", dbFile + "   "+ dbFile.exists());
           return dbFile.exists();
       }
  
       //Copy the database from assets
       private void copyDataBase() throws IOException
       {
           InputStream mInput = mContext.getAssets().open(DB_NAME);
           String outFileName = DB_PATH + DB_NAME;
           OutputStream mOutput = new FileOutputStream(outFileName);
           byte[] mBuffer = new byte[1024];
           int mLength;
           while ((mLength = mInput.read(mBuffer))&gt;0)
           {
               mOutput.write(mBuffer, 0, mLength);
           }
           mOutput.flush();
           mOutput.close();
           mInput.close();
       }
  
       //Open the database, so we can query it
       public boolean openDataBase() throws SQLException
       {
           String mPath = DB_PATH + DB_NAME;
           //Log.v("mPath", mPath);
           mDataBase = SQLiteDatabase.openDatabase(mPath, null, SQLiteDatabase.CREATE_IF_NECESSARY);
           //mDataBase = SQLiteDatabase.openDatabase(mPath, null, SQLiteDatabase.NO_LOCALIZED_COLLATORS);
           return mDataBase != null;
       }
  
       @Override
       public synchronized void close()
       {
           if(mDataBase != null)
               mDataBase.close();
           super.close();
       }
  
  }
  </code></pre>