Autore Topic: Errore adjustAdaptiveCoef  (Letto 498 volte)

Offline Nicolab1971

  • Utente junior
  • **
  • Post: 98
  • Respect: +2
    • Mostra profilo
Errore adjustAdaptiveCoef
« il: 04 Settembre 2015, 12:51:39 CEST »
0
Ciao a tutti,  ho un problema con una piccola app che sto sviluppando nel logcat mi compare il seguente errore, che al momento non porta al blocco dell'app.

adjustAdaptiveCoef max=4194304, min=1048576, ut=568

Il problema si presenta saltuariamente sul galaxy Nexus, mentre su un Samsung SM-G350 (core Plus) il problema è sempre presente. Ho trovato su internet che è un errore inerente al caricamento delle bitmap, ma a me compare anche in fragment dove ho solamente del testo.


Qualcuno ha già avuto questo problema?

Ciao e grazie

Offline pietroconti89

  • Utente normale
  • ***
  • Post: 164
  • Respect: +19
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note 3 N9005
  • Sistema operativo:
    Windows / Mac OSX
Re:Errore adjustAdaptiveCoef
« Risposta #1 il: 04 Settembre 2015, 13:12:08 CEST »
0
mai successo , ma cercando un pò sembra avere a che fare proprio con un uso di memoria in eccesso ... forse usi molto il metodo addtobackstack ? ricordo che tempo indietro avevo errori di memoria proprio perchè passavo per molti fragment e utilizzavo molto addtobackstack per tornare indietro , questo a volte mi mandava in crash l' app , e mi variava a seconda del dispositivo

Offline Nicolab1971

  • Utente junior
  • **
  • Post: 98
  • Respect: +2
    • Mostra profilo
Re:Errore adjustAdaptiveCoef
« Risposta #2 il: 04 Settembre 2015, 13:29:05 CEST »
0
Si effettivamente lo uso ma quello che non capisco è che l'errore avvolte compare anche all'avvio dell'app.

Offline pietroconti89

  • Utente normale
  • ***
  • Post: 164
  • Respect: +19
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note 3 N9005
  • Sistema operativo:
    Windows / Mac OSX
Re:Errore adjustAdaptiveCoef
« Risposta #3 il: 04 Settembre 2015, 13:35:34 CEST »
0
mmm allora no , il problema è altrove , credo che bisogna vedere un pò di sorgente , non hai fatto caso se si presenta a fronte di alcune azioni in particolare ?

Offline Nicolab1971

  • Utente junior
  • **
  • Post: 98
  • Respect: +2
    • Mostra profilo
Re:Errore adjustAdaptiveCoef
« Risposta #4 il: 04 Settembre 2015, 13:39:34 CEST »
0
Be si pensavo fosse correlato a il caricamento di immagini attraverso la libreria picasso. Ho creato un AsyncTask che scarica dei dati dalla rete e poi attraverso un adapter popola una listview.
Questo sotto è il codice dell'adaper.



Codice (Java): [Seleziona]
public final class AdapterWithImage extends ArrayAdapter<Post>
{

    Context context;

    public AdapterWithImage(Context context)
        {
                super(context, R.layout.row, R.id.title);
        this.context = context;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {

        Post t = getItem(position);
        ViewHolder viewHolder = null;

        if( convertView == null) {
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.row, null);
            viewHolder = new ViewHolder();
            viewHolder.Titolo = (TextView) convertView.findViewById(R.id.title);
            viewHolder.Immagine = (ImageView) convertView.findViewById(R.id.image);

            viewHolder.Titolo.setText(t.get_TITLE());

            Picasso.with(context)
                    .load(t.get_ProfileImageUrl())
                    .fit()
                    .centerCrop()
                    .into(viewHolder.Immagine);

            convertView.setTag(viewHolder);
        }
        else {
            viewHolder = (ViewHolder)convertView.getTag();
            viewHolder.Titolo.setText(t.get_TITLE());

            Picasso.with(context)
                    .load(t.get_ProfileImageUrl())
                    .fit()
                    .centerCrop()
                    .into(viewHolder.Immagine);

            convertView.setTag(viewHolder);

        }

        return convertView;
    }

    private static class  ViewHolder {
        public TextView Titolo;
        public ImageView Immagine;
    }


}

Offline pietroconti89

  • Utente normale
  • ***
  • Post: 164
  • Respect: +19
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note 3 N9005
  • Sistema operativo:
    Windows / Mac OSX
Re:Errore adjustAdaptiveCoef
« Risposta #5 il: 04 Settembre 2015, 13:50:19 CEST »
+1
se le immagini sono grandi probabilmente l'inghippo è proprio li , a me succedeva che popolavo una grdiview di bitmap , lo facevo senza problemi , poi magari passavo in un altro fragment utilizzando anche addbackstack e li crashava , questo perchè rimaneva comunque tutto in memoria e si saturava a fronte della grandi dimensione delle immagini , mi pare che già la libreria picasso possa fare il resize , considera se hai bitmap da 3/4 mb sono già grandine se pensi che la memoria assegnata mi pare che oscilla fra i 40 mb e i 60 mb variabile da dispositivo a dispositivo

Offline tonno16

  • Utente storico
  • *****
  • Post: 1197
  • Respect: +58
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Errore adjustAdaptiveCoef
« Risposta #6 il: 04 Settembre 2015, 15:39:40 CEST »
+1
Secondo me il tuo Adapter è swbagliato.

Non dovresti avere Picasso.load anche dove inizializzi il viewholder

Offline Nicolab1971

  • Utente junior
  • **
  • Post: 98
  • Respect: +2
    • Mostra profilo
Re:Errore adjustAdaptiveCoef
« Risposta #7 il: 04 Settembre 2015, 16:08:51 CEST »
0
ok ora provo a modificare l'adapter

Post unito: 04 Settembre 2015, 16:23:43 CEST
Allora ho modificato l'adapter  in questo modo

Codice (Java): [Seleziona]
public final class AdapterWithImage extends ArrayAdapter<Post>
{

    Context context;

    public AdapterWithImage(Context context)
        {
                super(context, R.layout.row, R.id.title);
        this.context = context;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {

        Post t = getItem(position);
        ViewHolder viewHolder = null;

        if( convertView == null) {
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.row, null);
            viewHolder = new ViewHolder();
            viewHolder.Titolo = (TextView) convertView.findViewById(R.id.title);
            viewHolder.Immagine = (ImageView) convertView.findViewById(R.id.image);
        }
        else {
            viewHolder = (ViewHolder)convertView.getTag();
           
        }


        viewHolder.Titolo.setText(t.get_TITLE());

        Picasso.with(context)
                .load(t.get_ProfileImageUrl())
                .fit()
                .centerCrop()
                .into(viewHolder.Immagine);

        convertView.setTag(viewHolder);

        return convertView;
    }

    private static class  ViewHolder {
        public TextView Titolo;
        public ImageView Immagine;
    }


}

ora sembrerebbe non dare più il messaggio di errore vediamo un pò continuo a fare un po di prove.
« Ultima modifica: 04 Settembre 2015, 16:23:43 CEST da Nicolab1971, Reason: Merged DoublePost »