title: android sqlite exception cursor or database not closed
body: <p>I'm trying to insert a row in a sqlite database's table, but when I call the insertOrThrow() method (Class Sqlitedatabase) i get this exception:
  "Application did not close the cursor or database object that was opened here"</p>
  
  <p>I don't understand why:</p>
  
  <p>here's the code for the main class:</p>
  
  <pre><code>         ........
           ContentValues values = new ContentValues();
           values.put("nome", info.getString("nome"));
           values.put("ingredienti", info.getJSONObject("ingredienti").toString());
           values.put("descrizione", info.getString("descrizione"));
           values.put("persone", info.getString("persone"));
           values.put("tempo", info.getString("tempo"));
           values.put("facilita", info.getString("facilita"));
           if(info.getString("url_foto")!="/images/ricettapredefinita.jpg")
              values.put("foto", true);
           else
              values.put("foto", false);
           values.put("categoria", info.getString("categoria"));
           values.put("zona", info.getString("regione"));
           values.put("ethnos", info.getString("etnica"));
           values.put("voto", info.getString("voto"));
          // Open database
          DbAdapter mDbHelper = new DbAdapter(Main.this);
          mDbHelper.open_w();
          long ritorno=mDbHelper.createRecipe(values);
  </code></pre>
  
  <p>These are the main methods for DbAdapter Class:</p>
  
  <pre><code>private static final String DATABASE_CREATE =
      "CREATE TABLE recipes (" +
      "_id INTEGER PRIMARY KEY AUTOINCREMENT," +
      "nome VARCHAR(255) NOT NULL," +
      "ingredienti TEXT NOT NULL," +
      "descrizione TEXT " +
      "persone SMALLINT," +
      "tempo TINYINT(3)," +
      "facilita SMALLINT," +
      "foto BOOL," +
      "voto TINYINT(3)," +
      "categoria VARCHAR(255)," +
      "zona VARCHAR(255)," +
      "ethnos VARCHAR(255));"; 
  public long createRecipe(ContentValues info) {
      return mDb.insertOrThrow(DATABASE_TABLE, null, info);
  }
  private static class DatabaseHelper extends SQLiteOpenHelper {
      DatabaseHelper(Context context) {
          super(context, DATABASE_NAME, null, DATABASE_VERSION);
      }
      @Override
      public void onCreate(SQLiteDatabase db) {
          db.execSQL(DATABASE_CREATE);
      }
      @Override
      public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
          Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
                  + newVersion + ", which will destroy all old data");
          db.execSQL("DROP TABLE IF EXISTS notes");
          onCreate(db);
      }
  }
  public DbAdapter open_w() throws SQLException {
      mDbHelper = new DatabaseHelper(mCtx);
      mDb = mDbHelper.getWritableDatabase();
      return this;
  }
  </code></pre>
  
  <p>Anyone has an idea for what the problem could be?</p>