Autore Topic: Downloader File Crash AsyncTask  (Letto 558 volte)

Offline lillogoal

  • Utente normale
  • ***
  • Post: 167
  • Respect: +4
    • Google+
    • lillosogliani
    • Mostra profilo
    • LilloNet
  • Dispositivo Android:
    Galaxy s3, Nexus 7,galaxy s advance,galaxy scl
  • Play Store ID:
    Lillonet Inc.
  • Sistema operativo:
    Windows 8,7 & Kali-Linux
Downloader File Crash AsyncTask
« il: 24 Giugno 2013, 22:31:15 CEST »
0
Ciao a tutti,
ho provato a cercare su internet ma non riesco a capire il problema. Praticamente ho utilizzato la classe Asynctask per gestire il download di un file. Ho settato un progress bar che mi mostra lo stato del progresso di download del file. Ma quando vado ad "aggiornarla" il programma "crasha".
Vi posto il piccolo sorgente dove è l'errore: FILE JAVA
Codice (Java): [Seleziona]
while ((read = is.read(buffer, 0, 1024)) > 0) {

                        totalRead += read;
                        //System.out.println(totalRead);
                        String progress = ("" + ((int) (totalRead * 100)) / lenghtOfFile);
                        System.out.println(progress);
                        publishProgress(progress);

                        cos.write(buffer, 0, read);
                    }

Ed Ecco qui il LogCat:
Codice: [Seleziona]
W/Bundle: Attempt to cast generated internal exception:
        java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
        at android.os.Bundle.getInt(Bundle.java:940)
        at com.android.server.am.MultiWindowManagerService.getDefaultWindowInfoLocked(MultiWindowManagerService.java:479)
        at com.android.server.am.MultiWindowManagerService.addWindowInfo(MultiWindowManagerService.java:317)
        at com.android.server.am.ActivityStack.startActivityLocked(ActivityStack.java:2394)
        at com.android.server.am.ActivityStack.startActivityUncheckedLocked(ActivityStack.java:3782)
        at com.android.server.am.ActivityStack.startActivityLocked(ActivityStack.java:3377)
        at com.android.server.am.ActivityStack.startActivityMayWait(ActivityStack.java:3946)
        at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:2651)
        at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:148)
        at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:1734)
        at android.os.Binder.execTransact(Binder.java:367)
        at dalvik.system.NativeStart.run(Native Method)
06-24 22:13:21.541    2271-2807/?                              W/Bundle: Key com.sec.android.multiwindow.DEFAULT_SIZE_H expected Integer but value was a java.lang.String.  The default value 0 was returned.
06-24 22:13:21.546    2654-2654/?                              W/ResourceType: Attempt to retrieve bag 0x01030068 which is invalid or in a cycle.
06-24 22:13:21.546    2271-2807/?                              W/Bundle: Attempt to cast generated internal exception:
        java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
        at android.os.Bundle.getInt(Bundle.java:940)
        at com.android.server.am.MultiWindowManagerService.getDefaultWindowInfoLocked(MultiWindowManagerService.java:483)
        at com.android.server.am.MultiWindowManagerService.addWindowInfo(MultiWindowManagerService.java:317)
        at com.android.server.am.ActivityStack.startActivityLocked(ActivityStack.java:2394)
        at com.android.server.am.ActivityStack.startActivityUncheckedLocked(ActivityStack.java:3782)
        at com.android.server.am.ActivityStack.startActivityLocked(ActivityStack.java:3377)
        at com.android.server.am.ActivityStack.startActivityMayWait(ActivityStack.java:3946)
        at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:2651)
        at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:148)
        at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:1734)
        at android.os.Binder.execTransact(Binder.java:367)
        at dalvik.system.NativeStart.run(Native Method)
06-24 22:13:21.546    2271-2807/?                              W/Bundle: Key com.sec.android.multiwindow.MINIMUM_SIZE_W expected Integer but value was a java.lang.String.  The default value 0 was returned.
06-24 22:13:21.551    2271-2807/?                              W/Bundle: Attempt to cast generated internal exception:
        java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
        at android.os.Bundle.getInt(Bundle.java:940)
        at com.android.server.am.MultiWindowManagerService.getDefaultWindowInfoLocked(MultiWindowManagerService.java:488)
        at com.android.server.am.MultiWindowManagerService.addWindowInfo(MultiWindowManagerService.java:317)
        at com.android.server.am.ActivityStack.startActivityLocked(ActivityStack.java:2394)
        at com.android.server.am.ActivityStack.startActivityUncheckedLocked(ActivityStack.java:3782)
        at com.android.server.am.ActivityStack.startActivityLocked(ActivityStack.java:3377)
        at com.android.server.am.ActivityStack.startActivityMayWait(ActivityStack.java:3946)
        at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:2651)
        at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:148)
        at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:1734)
        at android.os.Binder.execTransact(Binder.java:367)
        at dalvik.system.NativeStart.run(Native Method)
06-24 22:13:21.551    2271-2807/?                              W/Bundle: Key com.sec.android.multiwindow.MINIMUM_SIZE_H expected Integer but value was a java.lang.String.  The default value 0 was returned.
06-24 22:13:21.551    2271-2807/?                              W/Bundle: Attempt to cast generated internal exception:
        java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
        at android.os.Bundle.getInt(Bundle.java:940)
        at com.android.server.am.MultiWindowManagerService.getDefaultWindowInfoLocked(MultiWindowManagerService.java:492)
        at com.android.server.am.MultiWindowManagerService.addWindowInfo(MultiWindowManagerService.java:317)
        at com.android.server.am.ActivityStack.startActivityLocked(ActivityStack.java:2394)
        at com.android.server.am.ActivityStack.startActivityUncheckedLocked(ActivityStack.java:3782)
        at com.android.server.am.ActivityStack.startActivityLocked(ActivityStack.java:3377)
        at com.android.server.am.ActivityStack.startActivityMayWait(ActivityStack.java:3946)
        at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:2651)
        at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:148)
        at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:1734)
        at android.os.Binder.execTransact(Binder.java:367)
        at dalvik.system.NativeStart.run(Native Method)
Chi non progetta la sicurezza , programma il fallimento! K.M

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Downloader File Crash AsyncTask
« Risposta #1 il: 25 Giugno 2013, 07:54:29 CEST »
0
Citazione
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer

Non si vede il codice, ma leggendo l'errore, presumo che il tuo publishProgress accetti un int e invece cerchi di passare una String.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline lillogoal

  • Utente normale
  • ***
  • Post: 167
  • Respect: +4
    • Google+
    • lillosogliani
    • Mostra profilo
    • LilloNet
  • Dispositivo Android:
    Galaxy s3, Nexus 7,galaxy s advance,galaxy scl
  • Play Store ID:
    Lillonet Inc.
  • Sistema operativo:
    Windows 8,7 & Kali-Linux
Re:Downloader File Crash AsyncTask
« Risposta #2 il: 25 Giugno 2013, 10:11:44 CEST »
0
Sono riuscito a risolvere ho altri 2 problemi: vorrei far eseguire in parallelo 2 asynctask... praticamente io cliccocsu un butto n e vengono eseguite le 2 asynctask! Ho visto che è possibile tramite il metodo executeOnexecutor o una cosa simile... ma io le ho settate e quqndo clicco sul bottone parte solo la prima... se ci riclicco parte anche la 2.
Il secondo problema: vorrei calcolare la velocità di download... e settarla ad una text view l'unico problema è che se metto in un while l'istruzione: textview.setText (speed) l'applicazione crasha non capisco perché. .. utilizzo anche asynctask.  Grazie
Chi non progetta la sicurezza , programma il fallimento! K.M

Offline rs94

  • Utente normale
  • ***
  • Post: 227
  • Respect: +21
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia Arc S
  • Sistema operativo:
    Windows 8
Re:Downloader File Crash AsyncTask
« Risposta #3 il: 25 Giugno 2013, 11:16:45 CEST »
+1
Le operazioni di modifica della ui, come cambiare testo in una textview, devono essere fatte in onPreExecute, onPostExecute oppure onProgressUpdate.
Se fai operazioni sulla ui dentro il doInBackground ti da errore
L'unica certezza è il dubbio.
Dubitare di se stessi è il primo segno di intelligenza.

Offline lillogoal

  • Utente normale
  • ***
  • Post: 167
  • Respect: +4
    • Google+
    • lillosogliani
    • Mostra profilo
    • LilloNet
  • Dispositivo Android:
    Galaxy s3, Nexus 7,galaxy s advance,galaxy scl
  • Play Store ID:
    Lillonet Inc.
  • Sistema operativo:
    Windows 8,7 & Kali-Linux
Re:Downloader File Crash AsyncTask
« Risposta #4 il: 25 Giugno 2013, 11:21:22 CEST »
0
Invece per eseguire più task paralleli? Asynctask?
Come faccio a settare: oprogressupdate cioè scrivo nella void e basta? O devo mettere altro ad esempio in dobackground devo mettere publishprogress? Se rouscite fatemi un'esempio pratico grazie mille a tutti!!:)
Chi non progetta la sicurezza , programma il fallimento! K.M

Offline rs94

  • Utente normale
  • ***
  • Post: 227
  • Respect: +21
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia Arc S
  • Sistema operativo:
    Windows 8
Re:Downloader File Crash AsyncTask
« Risposta #5 il: 25 Giugno 2013, 21:24:54 CEST »
0
Sinceramente non ho ben capito cosa vuoi ottenere e a cosa servono 2 asynctask
L'unica certezza è il dubbio.
Dubitare di se stessi è il primo segno di intelligenza.

Offline lillogoal

  • Utente normale
  • ***
  • Post: 167
  • Respect: +4
    • Google+
    • lillosogliani
    • Mostra profilo
    • LilloNet
  • Dispositivo Android:
    Galaxy s3, Nexus 7,galaxy s advance,galaxy scl
  • Play Store ID:
    Lillonet Inc.
  • Sistema operativo:
    Windows 8,7 & Kali-Linux
Re:Downloader File Crash AsyncTask
« Risposta #6 il: 25 Giugno 2013, 21:41:58 CEST »
0
Scusami, puoi farmi un esempio di ciò che dicevi del onProgressUpdate con il publishProgress nel doBackground??!?!? Grazie.
Per l'altro argomento intendevo: Io vorrei far partire (execute) due asyctask diversi al click di un pulsante capito?

ho provato a farlo così: dimmi se è giusto?
Codice (Java): [Seleziona]
if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB) {

                        new ShowDialogAsyncTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, null);
                        new AsynTask2().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,null);
                    }
                    else {
                        new AsynTask2().execute();
                        new ShowDialogAsyncTask().execute();
                    }
Chi non progetta la sicurezza , programma il fallimento! K.M