"Please configure your build for VectorDrawableCompat"

1

I created an application that uses the database and it is not running. When I open it, it shows the following message

  

"Beta Database application stopped"

So I went to see LogCat and it shows that the error is in the onCreate of my activity ... could anyone help me?

ERROR:

10-12 09:30:52.251 983-983/com.gif.bancodedadosbeta E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gif.bancodedadosbeta/com.gif.bancodedadosbeta.Home}: java.lang.IllegalStateException: This app has been built with an incorrect configuration. Please configure your build for VectorDrawableCompat.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalStateException: This app has been built with an incorrect configuration. Please configure your build for VectorDrawableCompat.
at android.support.v7.widget.AppCompatDrawableManager.checkVectorDrawableSetup(AppCompatDrawableManager.java:720)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:187)
at android.support.v7.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.java:77)
at android.support.v7.app.AppCompatDelegateImplBase.(AppCompatDelegateImplBase.java:127)
at android.support.v7.app.AppCompatDelegateImplV9.(AppCompatDelegateImplV9.java:147)
at android.support.v7.app.AppCompatDelegateImplV11.(AppCompatDelegateImplV11.java:27)
at android.support.v7.app.AppCompatDelegateImplV14.(AppCompatDelegateImplV14.java:50)
at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:201)
at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:181)
at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:521)
at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:71)
at com.gif.bancodedadosbeta.Home.onCreate(Home.java:14)
at android.app.Activity.performCreate(Activity.java:5133)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 
at android.app.ActivityThread.access$600(ActivityThread.java:141) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:5103) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:525) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
at dalvik.system.NativeStart.main(Native Method) 

ACTIVITY CODE:

package com.gif.bancodedadosbeta;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

import java.util.Iterator;
import java.util.List;

public class Home extends AppCompatActivity {

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

        DbHelper dbh = new DbHelper(this);

        // add na tabela
        Livro SenhorDosAneis = new Livro(0,"Senhor dos Aneis", "Tokien", 300);

        dbh.insertLivro(SenhorDosAneis);

        dbh.insertLivro(new Livro(0,"Guerra dos tronos", "Martin", 1000));

        //recuperar outro livro
        List<Livro> listaLivros = dbh.selectTodosOsLivros();


        //Aparecer no logcat
        for (Iterator iterator = listaLivros.iterator(); iterator.hasNext();){
            Livro livro = (Livro) iterator.next();

            Log.i("AppMinhaBilioteca", livro.toString());
        }
    }
}

DbHelper Database:

package com.gif.bancodedadosbeta;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import java.util.ArrayList;
import java.util.List;

public class DbHelper extends SQLiteOpenHelper{


    // jeito mais simplificado falando o nome do banco e a sua versão
    private static final String NOME_BASE = "MinhaBiblioteca";
    private static final int VERSAO_BASE = 1;


    //coloando o context o nome do banco null e a versao dele
    public DbHelper(Context context) {
        super(context, NOME_BASE, null, VERSAO_BASE);
    }



    // aqui se cria a tabela do banco
    // (dizendo que é sql e dpois o nome dela no caso a baixo seria o "db"
    @Override
    public void onCreate(SQLiteDatabase db) {
        // para se criar uma tabela no banco e dessa forma

        // CREATE TABLE "nome da tabela ("+"id tipo dela chave primaria e add cada vez que criar uma celula," +"segundo nome da coluna tipo dela"+")";

        String sqlCreateTabelaLivro = "CREATE TABLE livro(" + "id INTEGER PRIMARY KEY AUTOINCREMENT," + "titulo TEXT," + "autor TEXT," + "paginas INTEGER"+ ")";

        //executando a criaçao da tabela
       db.execSQL(sqlCreateTabelaLivro);
    }




    // Fazendo atualizaçao do banco de dados
    //modo sql, depois o nome do banco, versao antiga e depois a nova versão
    @Override
    public void onUpgrade(SQLiteDatabase db, int i, int i1) {



        //falando o tipo dela e o nome da tabela atualizaçao
        String sqlDropTabelaLivro = "DROP TABLE livro";



        //executando atualizaçao da tabela
        db.execSQL(sqlDropTabelaLivro);



        //executando outra criançao da tabela para a nova versao do banco automaticamente
        onCreate(db);
    }



    //criando uma insert
    public void insertLivro(Livro livro){

        //dizendo que é um tipo "escrever"
        SQLiteDatabase db = getWritableDatabase();

        ContentValues cv = new ContentValues();
        //relacionando os valores da class Livro
        cv.put("titulo", livro.getTitulo());
        cv.put("autor", livro.getAutor());
        cv.put("paginas", livro.getPaginas());

        //fazendo o insert
        db.insert("livro", null, cv);

        //fechando o metodo
        db.close();
    }


    //metodo para recuperar o dados do banco
    public List<Livro> selectTodosOsLivros(){

        //fazendo para recuperar so um livro, se não ele recupera todos de uma vez
        List<Livro> listLivros = new ArrayList<Livro>();
        SQLiteDatabase db = getReadableDatabase();

        String sqlSelectTodosOsLivros = "SELECT = FROM livro";

        Cursor c = db.rawQuery(sqlSelectTodosOsLivros, null);

        //como que eu preciso mostrar o valor fiz uma condição que se tiver valor ele mostra se nao ele pega o proximo
        if(c.moveToFirst()){
            //fazer do/while para poder fazer com o proximo se nao ele so pega uma lista do livros
            do {
                Livro onde = new Livro();
                //pegando a coluna para mostrar o resultado
                onde.setId(c.getInt(0));
                onde.setTitulo(c.getString(1));
                onde.setAutor(c.getString(2));
                onde.setPaginas(c.getInt(3));

                //pondo na lista de livro
                listLivros.add(onde);

            }while (c.moveToNext());
        }

        db.close();
        return listLivros;

    }
}

Gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "com.gif.bancodedadosbeta"
        minSdkVersion 10
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:24.2.0'
}
  • Android Studio 1.5.1
  • Gradle Plugin 1.5
asked by anonymous 12.10.2016 / 16:04

1 answer

1

The error indicates that you should set build.gradle to handle VectorDrawableCompat . This is due to the versions of Android Studio , Gradle Plugin and appcompat-v7 that you are using.

From what I understand about here this would only be if you are using version 23.2.0 of appcompat-v7 . Either I misunderstood or what is referred to does not correspond to the truth.

So, in the builder.gradle section of the app module, add generatedDensities = [] in the defaultConfig

12.10.2016 / 18:25