单击按钮VerEstoque时,应用程序停止。关于代码的Logcat错误,请h3lp

时间:2015-07-29 03:30:52

标签: java android logcat

Logcat错误:因为我点击播放模拟

07-28 23:16:56.813    2367-2367/kabashima.materiaisdeconstrucaoconcept   W/EGL_genymotion﹕ eglSurfaceAttrib not implemented
07-28 23:16:58.493    2367-2367/kabashima.materiaisdeconstrucaoconcept D/dalvikvm﹕ GC_FOR_ALLOC freed 133K, 6% free 4119K/4356K, paused 2ms, total 2ms
07-28 23:16:58.493    2367-2367/kabashima.materiaisdeconstrucaoconcept D/dalvikvm﹕ GC_FOR_ALLOC freed 28K, 6% free 4311K/4580K, paused 2ms, total 2ms
07-28 23:16:58.497    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm-heap﹕ Grow heap (frag case) to 6.725MB for 2536932-byte allocation
07-28 23:16:58.501    2367-2376/kabashima.materiaisdeconstrucaoconcept D/dalvikvm﹕ GC_FOR_ALLOC freed <1K, 4% free 6788K/7060K, paused 3ms, total 3ms
07-28 23:16:58.645    2367-2367/kabashima.materiaisdeconstrucaoconcept D/dalvikvm﹕ GC_FOR_ALLOC freed 152K, 4% free 7731K/7984K, paused 3ms, total 3ms
07-28 23:16:58.709    2367-2367/kabashima.materiaisdeconstrucaoconcept D/dalvikvm﹕ GC_FOR_ALLOC freed 172K, 3% free 8970K/9244K, paused 3ms, total 3ms
07-28 23:16:58.777    2367-2367/kabashima.materiaisdeconstrucaoconcept D/dalvikvm﹕ GC_FOR_ALLOC freed 383K, 5% free 10411K/10896K, paused 4ms, total 4ms
07-28 23:16:58.873    2367-2367/kabashima.materiaisdeconstrucaoconcept D/dalvikvm﹕ GC_FOR_ALLOC freed 344K, 4% free 12369K/12816K, paused 4ms, total 4ms
07-28 23:16:58.993    2367-2367/kabashima.materiaisdeconstrucaoconcept D/dalvikvm﹕ GC_FOR_ALLOC freed 0K, 1% free 14567K/14672K, paused 7ms, total 7ms
07-28 23:16:59.149    2367-2367/kabashima.materiaisdeconstrucaoconcept D/dalvikvm﹕ GC_FOR_ALLOC freed 517K, 4% free 17737K/18356K, paused 7ms, total 7ms
07-28 23:16:59.341    2367-2367/kabashima.materiaisdeconstrucaoconcept D/dalvikvm﹕ GC_FOR_ALLOC freed 775K, 4% free 21706K/22584K, paused 9ms, total 9ms
07-28 23:16:59.573    2367-2367/kabashima.materiaisdeconstrucaoconcept D/dalvikvm﹕ GC_FOR_ALLOC freed 1163K, 5% free 26610K/27876K, paused 11ms, total 11ms
07-28 23:16:59.905    2367-2367/kabashima.materiaisdeconstrucaoconcept D/dalvikvm﹕ GC_FOR_ALLOC freed 0K, 1% free 32990K/33092K, paused 16ms, total 16ms
07-28 23:17:00.213    2367-2367/kabashima.materiaisdeconstrucaoconcept D/dalvikvm﹕ GC_FOR_ALLOC freed 1745K, 5% free 39436K/41284K, paused 18ms, total 18ms
07-28 23:17:00.565    2367-2367/kabashima.materiaisdeconstrucaoconcept D/dalvikvm﹕ GC_FOR_ALLOC freed 0K, 1% free 46080K/46184K, paused 22ms, total 22ms
07-28 23:17:00.805    2367-2367/kabashima.materiaisdeconstrucaoconcept D/dalvikvm﹕ GC_FOR_ALLOC freed 2618K, 6% free 51652K/54372K, paused 22ms, total 22ms
07-28 23:17:01.241    2367-2367/kabashima.materiaisdeconstrucaoconcept D/dalvikvm﹕ GC_FOR_ALLOC freed 0K, 1% free 59842K/59944K, paused 27ms, total 27ms
07-28 23:17:01.561    2367-2367/kabashima.materiaisdeconstrucaoconcept D/dalvikvm﹕ GC_FOR_ALLOC freed 0K, 1% free 65715K/65820K, paused 32ms, total 32ms
07-28 23:17:01.741    2367-2367/kabashima.materiaisdeconstrucaoconcept D/dalvikvm﹕ GC_FOR_ALLOC freed 3927K, 6% free 69979K/74008K, paused 30ms, total 30ms
07-28 23:17:02.189    2367-2367/kabashima.materiaisdeconstrucaoconcept D/dalvikvm﹕ GC_FOR_ALLOC freed 0K, 1% free 78170K/78272K, paused 34ms, total 34ms
07-28 23:17:02.645    2367-2367/kabashima.materiaisdeconstrucaoconcept D/dalvikvm﹕ GC_FOR_ALLOC freed 0K, 1% free 86362K/86464K, paused 38ms, total 38ms
07-28 23:17:03.097    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm-heap﹕ Clamp target GC heap from 100.434MB to 96.000MB
07-28 23:17:03.101    2367-2367/kabashima.materiaisdeconstrucaoconcept D/dalvikvm﹕ GC_FOR_ALLOC freed 0K, 1% free 94554K/94656K, paused 43ms, total 43ms
07-28 23:17:03.177    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm-heap﹕ Clamp target GC heap from 101.033MB to 96.000MB
07-28 23:17:03.177    2367-2367/kabashima.materiaisdeconstrucaoconcept D/dalvikvm﹕ GC_FOR_ALLOC freed 0K, 1% free 95167K/95272K, paused 46ms, total 46ms
07-28 23:17:03.177    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm-heap﹕ Forcing collection of SoftReferences for 9047800-byte allocation
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm-heap﹕ Clamp target GC heap from 101.025MB to 96.000MB
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept D/dalvikvm﹕ GC_BEFORE_OOM freed 9K, 1% free 95157K/95272K, paused 61ms, total 61ms
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept E/dalvikvm-heap﹕ Out of memory on a 9047800-byte allocation.
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm﹕ "main" prio=5 tid=1 RUNNABLE
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm﹕ | group="main" sCount=0 dsCount=0 obj=0xa4d10bd8 self=0xb8991eb0
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm﹕ | sysTid=2367 nice=0 sched=0/0 cgrp=apps handle=-1216860096
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm﹕ | state=R schedstat=( 4963745014 39782304 859 ) utm=460 stm=35 core=1
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm﹕ at java.util.ArrayList.add(ArrayList.java:~118)
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm﹕ at android.widget.ArrayAdapter.add(ArrayAdapter.java:179)
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm﹕ at kabashima.materiaisdeconstrucaoconcept.bancodedados.dominio.RepositorioEstoque.buscaEstoque(RepositorioEstoque.java:51)
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm﹕ at kabashima.materiaisdeconstrucaoconcept.EstoqueProdutos.onCreate(EstoqueProdutos.java:50)
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm﹕ at android.app.Activity.performCreate(Activity.java:5231)
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm﹕ at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm﹕ at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm﹕ at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm﹕ at android.app.ActivityThread.access$800(ActivityThread.java:135)
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm﹕ at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm﹕ at android.os.Handler.dispatchMessage(Handler.java:102)
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm﹕ at android.os.Looper.loop(Looper.java:136)
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm﹕ at android.app.ActivityThread.main(ActivityThread.java:5001)
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm﹕ at java.lang.reflect.Method.invokeNative(Native Method)
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm﹕ at java.lang.reflect.Method.invoke(Method.java:515)
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm﹕ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm﹕ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm﹕ at dalvik.system.NativeStart.main(Native Method)
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept I/dalvikvm﹕ [ 07-28 23:17:03.237  2367: 2367 D/AndroidRuntime ]
Shutting down VM
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0xa4d0fb20)
07-28 23:17:03.237    2367-2367/kabashima.materiaisdeconstrucaoconcept E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: kabashima.materiaisdeconstrucaoconcept, PID: 2367
java.lang.OutOfMemoryError
        at java.util.ArrayList.add(ArrayList.java:118)
        at android.widget.ArrayAdapter.add(ArrayAdapter.java:179)
        at kabashima.materiaisdeconstrucaoconcept.bancodedados.dominio.RepositorioEstoque.buscaEstoque(RepositorioEstoque.java:51)
        at kabashima.materiaisdeconstrucaoconcept.EstoqueProdutos.onCreate(EstoqueProdutos.java:50)
        at android.app.Activity.performCreate(Activity.java:5231)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
        at android.app.ActivityThread.access$800(ActivityThread.java:135)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5001)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
        at dalvik.system.NativeStart.main(Native Method)

// Banco de dados班     包kabashima.materiaisdeconstrucaoconcept.bancodedados;

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

import kabashima.materiaisdeconstrucaoconcept.Contact;



public class BancoDeDados extends SQLiteOpenHelper {

private static final int DATABASE_VERSION = 2;
private static final String DATABASE_NAME = "contacts.db";
private static final String TABLE_NAME = "contacts";
private static final String COLUMN_ID = "id";
private static final String COLUMN_NOME = "nome";
private static final String COLUMN_EMAIL = "email";
private static final String COLUMN_SENHA = "senha";
SQLiteDatabase db;

private static final String TABLE_CREATE = "create table contacts(id integer primary key not null  ," +
        "nome text not null, email text not null, senha text not null);";




public BancoDeDados(Context context){

super(context, DATABASE_NAME, null, DATABASE_VERSION);


}

@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(TABLE_CREATE);
    db.execSQL( ScriptSQL.getCreateEstoqueProdutos());
   // db.execSQL(TABLE_CREATE2);
    this.db=db;


 }

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
   String query = "DROP TABLE IF EXISTS" + TABLE_NAME;
    db.execSQL(query);
    this.onCreate(db);
}

public void insertContact(Contact c) {
db = this.getWritableDatabase();
    ContentValues values = new ContentValues();

    String query = "select * from contacts";
    Cursor cursor = db.rawQuery(query, null);
    int count = cursor.getCount();

    values.put(COLUMN_ID, count);
    values.put(COLUMN_NOME, c.getNome());
    values.put(COLUMN_EMAIL, c.getEmail());
    values.put(COLUMN_SENHA, c.getSenha());

    db.insert(TABLE_NAME, null, values);
    db.close();


}
public String searchPass(String nome){
    db = this.getReadableDatabase();
    String query = "select nome, senha from " + TABLE_NAME;
    Cursor cursor = db.rawQuery(query, null);
    String a,b;
    b = "not found";

    if(cursor.moveToFirst()){
        do{
             a = cursor.getString(0);
                if(a.equals(nome))
                {

                b = cursor.getString(1);
                break;

            }
        }while (cursor.moveToNext());

    }
            return b;
}
}

// RepositorioEstoque class

package kabashima.materiaisdeconstrucaoconcept.bancodedados.dominio;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.widget.ArrayAdapter;


public class RepositorioEstoque {
private SQLiteDatabase conn;

public RepositorioEstoque(SQLiteDatabase conn) {
    this.conn = conn;
}

public void TesteInserirProdutos() {

    for (int i = 0; i < 10; i++) {

        ContentValues values = new ContentValues();
        values.put("NOMEPRODUTOS", "JR");

        conn.insertOrThrow("ESTOQUEPRODUTOS", null, values);

    }

}

    public ArrayAdapter<String> buscaEstoque(Context context)

    {


        ArrayAdapter<String> adpEstoque = new ArrayAdapter<String>(context, android.R.layout.simple_list_item_1);


        Cursor cursor = conn.query("ESTOQUEPRODUTOS",null,null,null,null,null,null);
        if (cursor.getCount() > 0)
        {
            do {

                cursor.moveToFirst();


                String nome = cursor.getString(1);
                adpEstoque.add(nome);
            } while (cursor.moveToNext());


        }
        return adpEstoque;
    }


}

// EstoqueProdutos类

package kabashima.materiaisdeconstrucaoconcept;

import android.app.AlertDialog;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.*;
import android.content.*;
import android.database.sqlite.*;
import android.database.*;

import kabashima.materiaisdeconstrucaoconcept.bancodedados.BancoDeDados;
import kabashima.materiaisdeconstrucaoconcept.bancodedados.dominio.RepositorioEstoque;



public class EstoqueProdutos extends ActionBarActivity implements View.OnClickListener{

private ImageButton btnAdicionar;
private EditText edtPesquisa;
private ListView lstProdutos;
private ArrayAdapter<String> adpEstoque;
private BancoDeDados bancodedados;
private SQLiteDatabase conn;
private RepositorioEstoque repositorioEstoque;



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

    btnAdicionar = (ImageButton)findViewById(R.id.btnAdicionar);
    edtPesquisa = (EditText)findViewById(R.id.edtPesquisa);
    lstProdutos = (ListView)findViewById(R.id.lstProdutos);

    btnAdicionar.setOnClickListener(this);

    try{
        bancodedados = new BancoDeDados(this);
        conn = bancodedados.getWritableDatabase();


        repositorioEstoque = new RepositorioEstoque(conn);
        repositorioEstoque.TesteInserirProdutos();

        adpEstoque = repositorioEstoque.buscaEstoque(this);

        lstProdutos.setAdapter(adpEstoque);
        AlertDialog.Builder dlg = new AlertDialog.Builder(this);
        dlg.setMessage("Conexao criada com sucesso!");
        dlg.setNeutralButton("ok", null);


    }

    catch(SQLException ex)
    {
        AlertDialog.Builder dlg = new AlertDialog.Builder(this);
        dlg.setMessage("Erro ao criar o banco"+ ex.getMessage());
        dlg.setNeutralButton("ok", null);
        //MessageBox.show(this, "Erro", "Erro ao criar o banco: " + ex.getMessage() );
    }
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_estoque_produtos, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}

@Override
public void onClick(View view) {
    Intent in = new Intent(this, CadastrarProdutos.class);
    startActivity(in);
}

}

// ScripSQL类

package kabashima.materiaisdeconstrucaoconcept.bancodedados;


public class ScriptSQL {


public static String getCreateEstoqueProdutos()
{

    StringBuilder sqlBuilder = new StringBuilder();
    sqlBuilder.append(" CREATE TABLE IF NOT EXISTS ESTOQUEPRODUTOS ( ");
    sqlBuilder.append("_id                INTEGER       NOT NULL ");
    sqlBuilder.append("PRIMARY KEY AUTOINCREMENT, ");
    sqlBuilder.append("NOMEPRODUTOS         VARCHAR (200), ");
    sqlBuilder.append("MARCA                VARCHAR (200), ");
    sqlBuilder.append("LOJA                 VARCHAR (200), ");
    sqlBuilder.append("ESTOQUE              VARCHAR (10), ");
    sqlBuilder.append("VALOR                VARCHAR (30) ");
    sqlBuilder.append(");");

    return sqlBuilder.toString();

}

}

//有代码,冷酷的有人看到它吗?它会帮助我很多。我不知道这个问题真的是什么= /谢谢,我会有所帮助!

1 个答案:

答案 0 :(得分:0)

您要将所有结果添加到adpEstoque ArrayAdapter,这会引发OutOfMemory错误。

而不是使用ArrayAdapter使用CursorAdapter

有关如何使用CursorAdapter的更多信息,请阅读以下答案:Cursor adapter and sqlite example