Banco sqlite fechado

Bom dia, estou fazendo uma aplicação android, eu consigo salvar o vendedor, depois que salva o vendedor ele chama o login, no login tem um método getConfiguracao, o problema esta no método, no logcat diz que o banco esta fechado.

Códigos?

public class Banco extends SQLiteOpenHelper {
private static final String DB_NAME = “APPSTHMOB.DB”;
private static final Integer DB_VERSION = 1;
private SQLiteDatabase db = null;

public Banco(Context context) {
    super(context, DB_NAME, null, DB_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL(ScriptBanco.tb_android_metadata());
    db.execSQL(ScriptBanco.tb_clientes());
    db.execSQL(ScriptBanco.tb_configuracoes());
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}

@Override
public synchronized void close() {
    super.close();
    if (db != null) {
        db.close();
        db = null;
    }
}

public SQLiteDatabase escrever(){
    return db = getWritableDatabase();
}

public SQLiteDatabase ler(){
    return db = getReadableDatabase();
}

}

public class VendedorDao {

private Banco bancoDados;
private Vendedor vendedor = null;
private List<Vendedor> vendedores = null;
private ContentValues values = null;
private Cursor cursor = null;
private SQLiteDatabase db = null;

public VendedorDao(Context context) {
    this.bancoDados = new Banco(context);
}

public void salvarVendedor(Vendedor vendedor){
    bancoDados.escrever().beginTransaction();
    try {
        values = new ContentValues();
        values.put("id_vendedor",vendedor.getIdVendedor());
        values.put("login",vendedor.getLogin());
        values.put("senha",vendedor.getSenha());
        values.put("desconto",vendedor.getDesconto());
        values.put("mac",vendedor.getMac());
        values.put("inativo", vendedor.getInativo());
        values.put("valor_verba", vendedor.getValorVerba());

        bancoDados.escrever().insert("TB_VENDEDORES",null,values);
        bancoDados.escrever().setTransactionSuccessful();
    } catch (SQLiteException e){
        Log.i("Erro ","salvar vendedor" + e.getMessage());
    } finally {
        bancoDados.escrever().endTransaction();
        bancoDados.close();
    }
}

public void alterarVendedor(Vendedor vendedor){
    bancoDados.escrever().beginTransaction();
    try {
        values = new ContentValues();
        //values.put("id_vendedor", vendedor.getIdVendedor());
        values.put("login",vendedor.getLogin());
        values.put("senha",vendedor.getSenha());
        values.put("desconto",vendedor.getDesconto());
        values.put("mac",vendedor.getMac());
        values.put("inativo", vendedor.getInativo());
        values.put("valorverba", vendedor.getValorVerba());

        bancoDados.escrever().update("TB_VENDEDORES",values,"ID_VENDEDOR = ?",new String[]{String.valueOf(vendedor.getIdVendedor())});
        bancoDados.escrever().setTransactionSuccessful();
    } catch (SQLiteException e){
        Log.i("Erro ","salvar vendedor" + e.getMessage());
    } finally {
        bancoDados.escrever().endTransaction();
        bancoDados.escrever().close();
    }
}

public Vendedor getVendedor(){
    bancoDados.ler().beginTransaction();
    try {
        cursor = bancoDados.getReadableDatabase().query("TB_VENDEDORES",null,null,null,null,null,null);
        while(cursor.moveToNext()){
            vendedor = new Vendedor();
            vendedor.setIdVendedor(cursor.getInt(cursor.getColumnIndex("ID_VENDEDOR")));
            vendedor.setLogin(cursor.getString(cursor.getColumnIndex("LOGIN")));
            vendedor.setSenha(cursor.getString(cursor.getColumnIndex("SENHA")));
            vendedor.setDesconto(cursor.getString(cursor.getColumnIndex("DESCONTO")));
            vendedor.setMac(cursor.getString(cursor.getColumnIndex("MAC")));
            vendedor.setInativo(cursor.getString(cursor.getColumnIndex("INATIVO")));
            vendedor.setValorVerba(cursor.getDouble(cursor.getColumnIndex("VALOR_VERBA")));
            cursor.close();
        }
        bancoDados.ler().setTransactionSuccessful();
        bancoDados.ler().endTransaction();
    } catch (SQLiteException e) {
        Log.i("Erro ","getVendedor " + e.getMessage());
    } finally {
        bancoDados.close();
    }
    return vendedor;
}

public List<Vendedor> listarVendedor(){
    vendedores = new ArrayList<>();
    bancoDados.ler().beginTransaction();
    try {
        cursor = bancoDados.getReadableDatabase().query("TB_VENDEDORES",null,null,null,null,null,null);
        while(cursor.moveToNext()){
            vendedor = new Vendedor();
            vendedor.setIdVendedor(cursor.getInt(cursor.getColumnIndex("ID_VENDEDOR")));
            vendedor.setLogin(cursor.getString(cursor.getColumnIndex("LOGIN")));
            vendedor.setSenha(cursor.getString(cursor.getColumnIndex("SENHA")));
            vendedor.setDesconto(cursor.getString(cursor.getColumnIndex("DESCONTO")));
            vendedor.setMac(cursor.getString(cursor.getColumnIndex("MAC")));
            vendedor.setInativo(cursor.getString(cursor.getColumnIndex("INATIVO")));
            vendedor.setValorVerba(cursor.getDouble(cursor.getColumnIndex("VALOR_VERBA")));

            vendedores.add(vendedor);
        }
        bancoDados.ler().setTransactionSuccessful();
        cursor.close();
    } catch (SQLiteException e) {
        Log.i("Erro ","listaVendedor " + e.getMessage());
    } finally {
        bancoDados.ler().endTransaction();
        bancoDados.close();
    }
    return vendedores;
}

}

As outras classes DAO se baseia nesta!

Falai @Lazaro_Vidal_Teles blz? cara voce postou todo codigo menos essa parte que voce cita aqui [quote=“Lazaro_Vidal_Teles, post:1, topic:397429”]
depois que salva o vendedor ele chama o login, no login tem um método getConfiguracao
[/quote]
Apos voce salvar no bloco finally existe um banco.close() é provavel que quando executa o getConfiguracao voce não esteja abrindo o banco, pois o mesmo foi fechado no bloco finally.
No aguardo dessa parte faltante para que possamos dar a solução mais precisa.
Abraços
Max