2013-07-28 10 views
9

Ho recentemente caricato i nuovi strumenti di sviluppo Android, SDK 20130717 e NDK r9.Il debug NDK con r9 funziona su W7/64 ma mi dà problemi in XP

Fino ad ora ho avuto le versioni precedenti, lavorando e debuggando da dentro Eclipse bene su entrambi i miei sistemi, un XP e un W7/64.

Ora, il W7/64 con i nuovi strumenti funziona e esegue il debug delle app dopo l'installazione dei nuovi strumenti e l'ambiente del percorso richiesto cambia.

Funziona correttamente quando si seleziona "Debug come" + "Applicazione nativa Android".

Eppure XP, anche se hanno l'esatta configurazione in termini di cartelle/cygwin ecc., Dopo che i nuovi strumenti installati e il percorso necessario sono cambiati, sembra che non possa avviare ndk-dbg e it; s bloccato in attesa di "Launching MyApp (1): (100%)". Accade dopo aver selezionato "Debug come" + "Applicazione nativa Android".

Qualche suggerimento su quale potrebbe essere la causa? o c'è qualche problema noto su XP e debug r9 che mi manca?

grazie, Christos

* modificare

cercato di avviare manualmente l'NDK-gdb e questo è quello che ottengo, eventuali suggerimenti sono i benvenuti

Blockquote

$ ndk-gdb --start --verbose --force

Android NDK installation path: /cygdrive/e/android-ndk-r9

Using default adb command: /cygdrive/e/adt-bundle-windows-x86-20130717/sdk/platform-tools/adb

ADB version found: Android Debug Bridge version 1.0.31

Using ADB flags:

Using JDB command: /cygdrive/e/Android/Java/jdk1.7.0_21/bin/jdb

Using auto-detected project path: .

Found package name: myndkpackage

ABIs targetted by application: armeabi-v7a

Device API Level: 17

Device CPU ABIs: armeabi-v7a armeabi

Compatible device ABI: armeabi-v7a

Using gdb setup init: ./libs/armeabi-v7a/gdb.setup

Using toolchain prefix: /cygdrive/e/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/arm-linux-androideabi-

Using app out directory: ./obj/local/armeabi-v7a

Found debuggable flag: true

Found device gdbserver: /data/data/myndkpackage/lib/gdbserver

Found data directory: '/data/data/myndkpackage'

Found first launchable activity: myndkpackage.MainActivity

Launching activity: myndkpackage/myndkpackage.MainActivity

COMMAND: adb_cmd shell am start -D -n myndkpackage/myndkpackage.MainActivity

Starting: Intent { cmp=myndkpackage/.MainActivity }

COMMAND: adb_cmd shell sleep 2

Found running PID: 2787

Killing existing debugging session

COMMAND: adb_cmd shell kill -9 2753

Launched gdbserver succesfully.

Setup network redirection

COMMAND: adb_cmd shell run-as myndkpackage lib/gdbserver +debug-socket --attach 2787

COMMAND: adb_cmd forward tcp:5039 localfilesystem:/data/data/myndkpackage/debug-socket

Attached; pid = 2787

Listening on Unix socket debug-socket

COMMAND: adb_cmd pull /system/bin/app_process obj/local/armeabi-v7a/app_process

599 KB/s (9588 bytes in 0.015s)

Pulled app_process from device/emulator.

COMMAND: adb_cmd pull /system/bin/linker obj/local/armeabi-v7a/linker

658 KB/s (63244 bytes in 0.093s)

Pulled linker from device/emulator.

COMMAND: adb_cmd pull /system/lib/libc.so obj/local/armeabi-v7a/libc.so

744 KB/s (297608 bytes in 0.390s)

Pulled libc.so from device/emulator.

Setup JDB connection

COMMAND: adb_cmd forward tcp:65534 jdwp:2787

java.io.IOException: handshake failed - connection prematurally closed

at com.sun.tools.jdi.SocketTransportService.handshake(SocketTransportService.java:136)

at com.sun.tools.jdi.SocketTransportService.attach(SocketTransportService.java:232)

at com.sun.tools.jdi.GenericAttachingConnector.attach(GenericAttachingConnector.java:116)

at com.sun.tools.jdi.SocketAttachingConnector.attach(SocketAttachingConnector.java:90)

at com.sun.tools.example.debug.tty.VMConnection.attachTarget(VMConnection.java:519)

at com.sun.tools.example.debug.tty.VMConnection.open(VMConnection.java:328)

at com.sun.tools.example.debug.tty.Env.init(Env.java:63)

at com.sun.tools.example.debug.tty.TTY.main(TTY.java:1066)

Fatal error:

Unable to attach to target VM.

/cygdrive/e/android-ndk-r9/ndk-gdb: line 742: 4636 Segmentation fault $GDBCLIENT -x native_path $GDBSETUP

Blockquote

risposta

4

Ok,

Da quello che ho capito, è un problema nella nuova versione r9, in particolare nel file

android-NDK-R9/toolchain/arm-linux-androideabi-4.6/precompilati/windows/bin/ARM-linux-androideabi-gdb

Questo eseguibile dà la colpa di segmentazione.

Quindi sembra che nella distribuzione non sia stato generato correttamente dall'inizio, dagli stessi sviluppatori di android che lo hanno caricato sul sito principale di Android.

Ho provato e scaricato nuovamente la distribuzione r9 e reinstallato, ma la stessa cosa è accaduta quindi non è stato qualcosa di accidentale, ad esempio una decompressione negativa.

Ho provato il vecchio file r8e stesso e non dà l'errore di segmentazione, funziona bene.

Quindi, ho fatto qualcosa per ottenere una prova di concetto di ciò che dico e ho preso il file della versione precedente (da r8e) e sovrascrivere il nuovo file r9, quindi ho provato di nuovo a eseguire l'errore ndk-dbg e ..

..è fUNZIONA ..

ora ho un nuovo R9 NDK ma con un file dalla r8e, il vecchio braccio-linux-androideabi-gdb.exe e tutto funziona bene!

Quindi credo che gli sviluppatori Android hanno a ri-fare la compilazione del

-> Android-NDK-R9/toolchain/arm-linux-androideabi-4.6/precompilati/windows/bin/arm-linux -androideabi-gdb.exe

strumento, correttamente questa volta.

Almeno spero che qualcuno troverà questo utile ed evitare la frustrazione che ho avuto tutto questo tempo.

Christos

+0

risolto il problema di segmentazione per me. Grazie per trovare il tempo di pubblicare. – pauld

+0

Anche il downgrade mi ha aiutato! Grazie! Ho intenzione di provare l'aggiornamento a r9 e sostituire l'unico file come suggerito. Hai mai archiviato un bug report sul problema? – Cliff

+0

non lo hanno ancora risolto; stesso problema in r10d – CpS