Sto avendo problemi con l'utilizzo di un debugger Java java con app Android su emulatore. Apparentemente, qualsiasi debugger java con funzionalità remote come jdb (o jswat) potrebbe essere sfruttato, seguendo i passaggi seguenti (come ho capito dopo aver letto qua e là):debug dell'applicazione Android con "jdb -attach" (o jswat)
1) accendi l'emulatore, installa la tua app su l'emulatore (adb install)
2) Accendere il server Dalvik (DDMS)
3) sul emulatore, eseguire il "DevTools" app -> "Impostazioni di sviluppo" -> selezionare l'applicazione che vuoi eseguire il debug, abilita il flag "Attendi il debugger"
4) ancora nell'emulatore, avvia la tua app; bloccherà, in attesa di un debugger da allegare, e dalvik mostrerà un nuovo processo contrassegnato da un "bug rosso"
5) su dalvik, selezionare il processo contrassegnato in rosso; la sua porta di debug viene quindi inoltrata a localhost: 8700
6) collegare il debugger a localhost: 8700. Con jdb devi eseguire "jdb -attach 8700"
Non appena il debugger viene avviato, la tua app sull'emulatore si sblocca. Quindi, sembra che l'app abbia rilevato correttamente un debugger e quindi sia libero.
Il punto, tuttavia, è che "viene eseguito gratuitamente", ovvero non attenderà che il debugger esegua un comando "Esegui". Quindi non ho alcuna possibilità di impostare alcun punto di interruzione.
Seguendo i suggerimenti da 1, ho provato a mettere i cicli di attesa all'inizio della mia app, nella speranza che avrei il tempo di impostare un punto di interruzione. Quando provo a impostare un breakpoint, jdb dice "Deferring breakpoint XXX.YYY. Sarà impostato dopo che la classe è stata caricata.", Poiché l'app non era ancora in esecuzione. Ma, se poi invio un comando "run", la risposta è "Nothing suspended.", Poiché l'app era già in esecuzione (ed è proprio così).
Con JSwat non si vede al questi messaggi, ma il risultato finale è lo stesso :-(
Inutile dire, "jdb -attach" funziona bene con le applicazioni Java non-Android in esecuzione su localhost.
Eventuali suggerimenti (ad eccezione di "utilizzare Eclipse")?
sono io manca solo uno stupido dettaglio da qualche parte?
L'applicazione è un HelloWorld, il comando build è "debug formica".
0.123.516,41 milaGrazie in anticipo.
Compatibile con dispositivi fisici e virtuali: https://asantoso.wordpress.com/2009/09/26/using-jdb-with-adb-to-debugging-of-android-app-on-a-real -dispositivo/ –