Autore Topic: Errore GC_EXPLICIT freed  (Letto 496 volte)

Offline vecio88

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Errore GC_EXPLICIT freed
« il: 01 Febbraio 2012, 14:33:53 CET »
0
Credo sia questa la sezione giusta per questo mio problema...cmq oggi ho aggiunto una riga ad una tabella già esistente e ora mi da l'errore che vedete nel log...ma non ho idea di cosa sia...

Citazione
02-01 13:27:01.512: D/AndroidRuntime(290): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
02-01 13:27:01.512: D/AndroidRuntime(290): CheckJNI is ON
02-01 13:27:01.962: D/AndroidRuntime(290): --- registering native functions ---
02-01 13:27:03.982: D/AndroidRuntime(290): Shutting down VM
02-01 13:27:04.002: D/dalvikvm(290): Debugger has detached; object registry had 1 entries
02-01 13:27:04.022: I/AndroidRuntime(290): NOTE: attach of thread 'Binder Thread #3' failed
02-01 13:27:05.122: D/AndroidRuntime(298): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
02-01 13:27:05.132: D/AndroidRuntime(298): CheckJNI is ON
02-01 13:27:05.833: D/AndroidRuntime(298): --- registering native functions ---
02-01 13:27:07.874: I/ActivityManager(69): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=core.sms.mobile/.SMSMobile2Activity }
02-01 13:27:08.033: D/AndroidRuntime(298): Shutting down VM
02-01 13:27:08.044: D/dalvikvm(298): Debugger has detached; object registry had 1 entries
02-01 13:27:08.103: I/AndroidRuntime(298): NOTE: attach of thread 'Binder Thread #3' failed
02-01 13:27:08.493: W/ActivityManager(69): Activity pause timeout for HistoryRecord{4501af78 com.android.launcher/com.android.launcher2.Launcher}
02-01 13:27:10.953: I/ActivityManager(69): Displayed activity core.sms.mobile/.SMSMobile2Activity: 1929 ms (total 1929 ms)
02-01 13:27:21.433: D/dalvikvm(128): GC_EXPLICIT freed 522 objects / 26464 bytes in 5447ms

Codice del main:
Codice (Java): [Seleziona]
package core.sms.mobile;

import java.io.IOException;
import java.util.NoSuchElementException;
import java.util.Timer;
import java.util.TimerTask;

import core.sms.mobile.FileManager.FileRilevazioni;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class SMSMobile2Activity extends Activity { //

    TextView orario, val_max, unit, fault, orarioT, val_maxT, unitT, faultT;
    ImageView icona, iconaT;
    Context c;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.status);
        c = this;
        final SMS_WSN wsn = new SMS_WSN();
        final FileRilevazioni fr = new FileRilevazioni(c);
        final GestoreRilevazioni gr = new GestoreRilevazioni(c);

        LayoutInflater inflater = getLayoutInflater();
        View layout = inflater.inflate(R.layout.avviso,
                (ViewGroup) findViewById(R.id.toast_layout));
        final Toast toast = new Toast(this.getApplicationContext());
        toast.setDuration(Toast.LENGTH_LONG);
        toast.setView(layout);

        orario = (TextView) findViewById(R.id.orario);
        val_max = (TextView) findViewById(R.id.valore);
        unit = (TextView) findViewById(R.id.unita);
        fault = (TextView) findViewById(R.id.numFault);
        icona = (ImageView) findViewById(R.id.icona);
        orarioT = (TextView) findViewById(R.id.orarioT);
        val_maxT = (TextView) findViewById(R.id.valoreT);
        unitT = (TextView) findViewById(R.id.unitaT);
        faultT = (TextView) findViewById(R.id.numFaultT);
        iconaT = (ImageView) findViewById(R.id.iconaT);

        class MyHandler extends Handler {
            @Override
            public void handleMessage(Message msg) {
                Bundle bundle = msg.getData();
                if (bundle.containsKey("valoreMax")
                        && bundle.containsKey("orario")) {

                    String valueMax = bundle.getString("valoreMaxRad");
                    String valueTime = bundle.getString("orario");
                    String unitaDiMisura = bundle.getString("unitRad");
                    String valueFault = bundle.getString("numFaultRad");
                    // String valueMaxT = bundle.getString("valoreMaxTemp");
                    // String unitaDiMisuraT = bundle.getString("unitTemp");
                    // String valueFaultT = bundle.getString("numFault");

                    orario.setText(valueTime);
                    val_max.setText(valueMax);
                    unit.setText(unitaDiMisura);
                    fault.setText(valueFault);
                    // orarioT.setText(valueTime);
                    // val_maxT.setText(valueMaxT);
                    // unitT.setText(unitaDiMisuraT);
                    // faultT.setText(valueFaultT);

                    if (bundle.getString("statoRad").equals("ALERT")) {
                        icona.setImageResource(R.drawable.alert);
                        toast.show();
                    } else
                        icona.setImageResource(R.drawable.no_alert);

                    // if (bundle.getString("statoTemp").equals("ALERT")) {
                    // iconaT.setImageResource(R.drawable.alert);
                    // toast.show();
                    // } else iconaT.setImageResource(R.drawable.no_alert);

                }
            }
        }

        Handler handler = new MyHandler();

        fr.openFile();

        //
        class MainTask extends TimerTask {

            private Handler handler;

            public MainTask(Handler handler) {
                this.handler = handler;
            }

            public void run() {

                try {

                    String str = fr.readLine();
                    Rilevazione aRilevation = wsn.createRilevation(str,
                            gr.checkStructure(str));
                    gr.sendRilToStorico(aRilevation);
                    gr.sendRilToJournaling(str, aRilevation);

                    this.updateValue(aRilevation.getOra(),
                            aRilevation.getValRadMax(),
                            aRilevation.getNumRadFault(),
                            aRilevation.verifyRadAllert(),
                            aRilevation.getValTempMax(),
                            aRilevation.getNumTempFault(),
                            aRilevation.verifyTempAllert());

                } catch (NoSuchElementException e) {
                    System.out.println("Non ci sono più righe da leggere");
                    System.exit(1);
                }

            }

            private void updateValue(String ora, int maxV, int numF,
                    String state, int maxVT, int numFT, String stateT) {
                Message msg = handler.obtainMessage();
                Bundle b = new Bundle();
                b.putString("orario", "" + ora);
                b.putString("valoreMaxRad", "" + maxV);
                b.putString("unitRad", "CMP");
                b.putString("numFaultRad", "" + numF + "/10");
                b.putString("statoRad", "" + state);
                // b.putString("valoreMaxTemp", "" + maxVT);
                // b.putString("unitTemp", "C°");
                // b.putString("numFaultTemp", "" + numFT + "/10");
                // b.putString("statoTemp", "" + stateT);
                msg.setData(b);
                handler.sendMessage(msg);
            }
        }

        Timer timer = new Timer();
        TimerTask task = new MainTask(handler);
        timer.schedule(task, 5000, 5000);

    }

    public void onClick(View arg0) {
        // TODO Auto-generated method stub

    }

}

Codice Layout
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<!-- Main Layout of Status Activity -->

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:orientation="vertical" >

    <LinearLayout
       android:layout_width="fill_parent"
       android:layout_height="100px"
       android:orientation="vertical" >

        <ImageView
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:layout_weight="1"
           android:src="@drawable/logo_sms" />
    </LinearLayout>

    <TableLayout
       android:layout_width="wrap_content"
       android:layout_height="fill_parent"
       android:orientation="horizontal"
       android:stretchColumns="5" >

        <TableRow >

            <ImageView
               android:layout_width="90px"
               android:layout_height="wrap_content"
               android:layout_weight="1" />

            <TextView
               android:layout_width="90px"
               android:layout_height="wrap_content"
               android:gravity="center"
               android:text="Ora" />

            <TextView
               android:layout_width="90px"
               android:layout_height="wrap_content"
               android:gravity="center"
               android:text="Valore" />

            <TextView
               android:layout_width="90px"
               android:layout_height="wrap_content"
               android:gravity="center"
               android:text="Unità" />

            <TextView
               android:layout_width="90px"
               android:layout_height="wrap_content"
               android:gravity="center"
               android:text="Fault" />
        </TableRow>

        <TableRow >

            <ImageView
               android:id="@+id/icona"
               android:layout_width="90px"
               android:layout_height="40px" />

            <TextView
               android:id="@+id/orario"
               android:layout_width="90px"
               android:layout_height="wrap_content"
               android:gravity="center" />

            <TextView
               android:id="@+id/valore"
               android:layout_width="90px"
               android:layout_height="wrap_content"
               android:gravity="center" />

            <TextView
               android:id="@+id/unita"
               android:layout_width="90px"
               android:layout_height="wrap_content"
               android:gravity="center" />

            <TextView
               android:id="@+id/numFault"
               android:layout_width="90px"
               android:layout_height="wrap_content"
               android:gravity="center" />
        </TableRow>

        <TableRow >

            <ImageView
               android:id="@+id/iconaT"
               android:layout_width="90px"
               android:layout_height="40px" />

            <TextView
               android:id="@+id/orarioT"
               android:layout_width="90px"
               android:layout_height="wrap_content"
               android:gravity="center" />

            <TextView
               android:id="@+id/valoreT"
               android:layout_width="90px"
               android:layout_height="wrap_content"
               android:gravity="center" />

            <TextView
               android:id="@+id/unitaT"
               android:layout_width="90px"
               android:layout_height="wrap_content"
               android:gravity="center" />

            <TextView
               android:id="@+id/numFaultT"
               android:layout_width="90px"
               android:layout_height="wrap_content"
               android:gravity="center" />
        </TableRow>
    </TableLayout>

</LinearLayout>

Offline vecio88

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Errore GC_EXPLICIT freed
« Risposta #1 il: 02 Febbraio 2012, 15:16:43 CET »
0
Ho risolto, ora viene eseguito il programma ma stranamente quell'errore continua ad apparire.

Offline Reinhard

  • Utente junior
  • **
  • Post: 85
  • Respect: +16
    • Google+
    • rspisser
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5 Lollipop 5.1
  • Play Store ID:
    rspisser
  • Sistema operativo:
    Windows 7
Re:Errore GC_EXPLICIT freed
« Risposta #2 il: 02 Febbraio 2012, 15:37:05 CET »
0
Ciao,

non è un errore, è il Garbage Collector di Dalvik che lavora.

vedi qui:

http://stackoverflow.com/questions/4976566/what-do-gc-for-malloc-gc-explicit-and-other-gc-mean-in-android-logcat

Offline vecio88

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Errore GC_EXPLICIT freed
« Risposta #3 il: 02 Febbraio 2012, 15:45:24 CET »
0
capi :) perciò è regolare.

Però mi sembra strano che prima non usciva, o forse non ci facevo caso io

In realtà l'applicazione non funzionava perchè avevo modificato alcuni metodi, e non ho aggiornato il file da cui prende i dati...e perciò si bloccava più un altro errore nel controllo nelle chiavi presenti nel bundle