Erro do Android NDK: Não foi possível extrair o diretório de dados do pacote. Tem certeza de que seu aplicativo instalado é debuggable?

0

Estou usando o Eclipse para depurar meu aplicativo Android, que possui um código nativo C.

Quando eu conecto meu Nexsus4, a ferramenta de depuração externa do NDK funciona.

Quando eu conecto meu Galaxy Note2, ele gera o seguinte erro ao tentar anexar ao dispositivo:

Android NDK installation path: /Users/eladb/MyWorkspace/android-ndk-r8b
Using specific adb command: /Users/eladb/MyWorkspace/sdk/platform-tools/adb
ADB version found: Android Debug Bridge version 1.0.31
Using ADB flags: 
Using auto-detected project path: .
Found package name: com.myPack
ABIs targetted by application: armeabi
Device API Level: 18
Device CPU ABIs: armeabi-v7a armeabi
Compatible device ABI: armeabi
Using gdb setup init: ./libs/armeabi/gdb.setup
Using toolchain prefix: /Users/eladb/MyWorkspace/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86/bin/arm-linux-androideabi-
Using app out directory: ./obj/local/armeabi
Found debuggable flag: true
Found device gdbserver: /data/data/com.myPack/lib/gdbserver
ERROR: Could not extract package's data directory. Are you sure that
       your installed application is debuggable?

Eu habilitei opções de desenvolvedores e permitida a depuração do dispositivo via USB.

Não funciona para o meu Samsung Galaxy Note2 (Android 4.3), mas funciona para o Nexsus4 (4.2).

Acho que este é um conhecido problema mas como eu trabalho com isso?

    
por Elad Benda 30.12.2013 / 14:10

1 resposta

0

Você fez um comentário # 29 ?

For NDK r9:

Find this line in ndk-gdb:

run adb_cmd shell run-as $PACKAGE_NAME lib/gdbserver +$DEBUG_SOCKET --attach $PID &

replace it with these 4 lines (assuming you have $NDK defined, and assuming your target device is ARM):

run adb_cmd forward tcp:5039 tcp:5039 run adb_cmd remount run adb_cmd
push $NDK/prebuilt/android-arm/gdbserver /system/bin/gdbserver.temp
run adb_cmd shell /system/bin/gdbserver.temp --attach :5039 $PID &

I am working from memory above, didn't actually test exactly what I've written just now, so I apologize for any mistakes, but that is the general idea.

Again, this requires rooted device.

    
por 30.12.2013 / 16:11