2013-06-22 13 views
5

Non ho mai avuto problemi a caricare le mie applicazioni sui miei dispositivi (Galaxy SPlus e Nexus 10) ma per un motivo sconosciuto, ora caricare un APK sul mio Nexus 10 impiega anni ... su 20 volte che ho provato, ho raggiunto la fine solo una volta.Adb installazione/caricamento di apk prendendo età

Qualcuno sa come posso eseguire il debug/verbose del caricamento APK per sapere a che velocità va? Non so in che modo viene caricato l'APK, qualcuno può darmi un suggerimento su dove cercare? Voglio indagare ma non so cosa fare?

Il dispositivo risponde correttamente ai comandi adb, posso vederlo in Eclipse, posso scaricare/caricare file con DDMS file explorer, tutto funziona come al solito, ma quando si esegue/debug la mia applicazione, Eclipse rimane bloccato " Caricamento di mia-application.apk sul dispositivo 'R32D1035MCE' ".

Potrebbe aiutarmi per favore?

EDIT:

ho azzerato il dispositivo alle impostazioni di fabbrica, lo fa nessun aiuto.

Inoltre, ho abilitato le tracce con ADB_TRACE = tutte nelle impostazioni dell'ambiente e la traccia mostra che adb sta aspettando qualcosa, ma non ne ho idea.

EDIT:

ancora indagando, mio ​​Nexus 10 stava lavorando di nuovo, e poi improvvisamente ha smesso di funzionare. Nel registro DDMS, ho il seguente messaggio di errore:

[2013-06-23 01:09:30 - ddmlib] An established connection was aborted by the software in your host machine 
java.io.IOException: An established connection was aborted by the software in your host machine 
    at sun.nio.ch.SocketDispatcher.write0(Native Method) 
    at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51) 
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:89) 
    at sun.nio.ch.IOUtil.write(IOUtil.java:60) 
    at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:450) 
    at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213) 
    at com.android.ddmlib.Client.sendAndConsume(Client.java:607) 
    at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:348) 
    at com.android.ddmlib.Client.requestAllocationStatus(Client.java:453) 
    at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:835) 
    at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:803) 
    at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:621) 
    at com.android.ddmlib.DeviceMonitor.access$100(DeviceMonitor.java:44) 
    at com.android.ddmlib.DeviceMonitor$3.run(DeviceMonitor.java:580) 

Sembra relativi a questo problema: An established connection was aborted by the software in your host machine

Ma nessuna delle soluzioni date stanno lavorando per me.

C'è un modo per ripristinare la connessione di rete che adb sta facendo con il dispositivo?

EDIT: una soluzione è stata trovata come suggerito da chris-stratton, usando "adb install -r package.apk", l'uso del commutatore -r che forza una reinstallazione sblocca lo stato bloccato del dispositivo.

+1

Potrebbe non essere l'installazione che richiede tempo, ma piuttosto che la macchina di sviluppo si rende conto che è fatta. Prova adb install -r your.package.apk da un terminale della riga di comando. Il .apk è probabilmente nel cestino/cartella del tuo progetto. –

+0

provare anche a ripristinare il dispositivo alle impostazioni predefinite di fabbrica –

+0

Ho reimpostato il dispositivo sui valori predefiniti di fabbrica ma non è di aiuto. Questa è stata la mia migliore fortuna. Funziona ancora bene con il mio altro dispositivo, quindi penso che sia qualcosa in un'installazione o una cache dell'installazione di adb sul mio PC. –

risposta

7

Ok, ho finalmente trovato la risposta. Il motivo è che ho usato un altro cavo mini USB rispetto a quello fornito con il dispositivo Nexus. Lo sto riproducendo al 100%.

Quando utilizzo il cavo dal mio Galaxy SPlus, il Nexus non vuole caricare il file (anche se il dispositivo è riconosciuto e tutto sembra a posto). Il caricamento non finisce mai.

E l'inverso è vero anche, quando si utilizza il dispositivo cavo USB del mio Nexus 10 con il mio Galaxy SPlus, questa volta il dispositivo stesso non viene riconosciuto.

L'ho provato su due PC diversi. Pensavo che i cavi mini USB fossero tutti compatibili. Ma no. La risposta che non ho è: perché?

+0

È possibile misurare l'impedenza del cavo? – MickLH

+0

Non so come farlo. –

+1

Come sottolineato da @Donovanr cambiando la porta USB l'ho fatto per me – Sreekanth

1

Non so come monitorare la velocità di caricamento di un APK in modo che quanto segue non aiuti a velocizzare il trasferimento ma se ciò che intendi è che il trasferimento non riesce a causa di un timeout, è possibile modificare tale valore in Window->Preferences->Android->DDMS->ADB Connection time out.

Il mio è configurato per 10000 (che è 10 secondi) e raramente fallisce.

Ma nessuna delle soluzioni fornite funziona per me.

Ce ne sono molti, quali avete provato in modo da non proporre quelli?

C'è un modo per ripristinare la connessione di rete che adb sta facendo con il dispositivo?

È possibile ripristinare ADB da Eclipse andando alla prospettiva DDMS e nei dispositivi parte click sul triangolo rivolta verso il basso vicino alla ingrandire e ridurre i pulsanti per i dispositivi che sottofinestra per arrivare a un menu che contiene Ripristina ADB.

Si può anche provare a far uscire il dispositivo dalla modalità di debug USB e viceversa per riavviarlo completamente (anche se dato che sarebbe stato parte del ripristino delle impostazioni di fabbrica è improbabile che funzioni).

Inoltre, il caricamento di altre applicazioni funziona? Se hai solo un progetto nel tuo spazio di lavoro prova File -> Nuovo -> Altro -> Android -> Progetto di esempio Android (nessuno di loro).

+0

Ho modificato l'impostazione di timeout per 10 secondi e il tempo è scaduto dopo questo tempo. –

+0

Ho questo problema su molti dei miei progetti Android, non è legato a questa applicazione. Ho anche provato ad attivare/disattivare la modalità di debug USB e ho anche provato a fare un riavvio completo del dispositivo. L'ho persino resettato alle impostazioni di fabbrica. –

3

Una leggera variazione della diversa soluzione di cavo USB è che ho appena passato le porte USB; problema risolto. Questo è stato anche dopo aver riavviato sia il mio desktop che il mio telefono non sono stati sufficienti.

0

Ho affrontato anche questo problema. Dopo aver digitato sul comando finestre: adb devices, v'è (almeno) 2 possibilità:

  1. Elenco dei dispositivi collegati dispositivi 41006XXXXXXX
  2. Lista delle periferiche collegate 41006cXXXXXX autorizzato

La seconda linea indica il problema con la connessione del dispositivo al PC. Ho risolto il problema configurando il mio cellulare per il debug e poi ha funzionato perfettamente.

Problemi correlati