Я использую Eclipse для отладки моего Android-приложения с собственным кодом на языке C.

Когда я подключаю Nexsus4, работает внешний инструмент отладки NDK.

Когда я подключаю свой Galaxy Note2, он выдает следующую ошибку при попытке подключиться к устройству:

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?

Я включил параметры разработчиков и разрешил отладку устройства через USB.

Он не работает для моего Samsung Galaxy Note2 (Android 4.3), но работает для Nexsus4 (4.2).

Я думаю, что это известная проблема, но как мне обойти это?

1 ответ1

0

Вы смотрели на комментарий № 29?

Для NDK r9:

Найдите эту строку в ndk-gdb:

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

замените его следующими 4 строками (при условии, что вы определили $ NDK, и если ваше целевое устройство - 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 &

Я работаю по памяти выше, на самом деле не проверял точно, что я только что написал, поэтому я прошу прощения за любые ошибки, но это общая идея.

Опять же, это требует рутированного устройства.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .