Не удалось подключить ndk-gdb к андроидному приложению

Я пытаюсь подключить ndk-gdb к моему Android-приложению.

Я использую is Android-ndk-r6b, а устройство Android 2.3, Samsung Galaxy S II.

Я выполнил все шаги в этом примере Нажмите здесь для примера

И также я попытался с одним приложением, когда я пытаюсь подключить gdb к другому приложению, но подробный показ, что он всегда привязывается к первому приложению

Found package name: <1st attached package name>

Я попытался запустить ndk-gdb с помощью этой команды в первый раз:

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

Я попытался подключиться к другому приложению с помощью команды ниже, но не смог добиться успеха:

ndk-gdb --launch=com.example.hellogdbserver.HelloGdbServer --force --verbose

Я всегда получаю следующую ошибку с первым приложением:

ERROR: Non-debuggable application installed on the target device.Please re-install the debuggable version!

Это полный журнал оболочки, который я получаю

    sh-4.1$ ndk-gdb --verbose --start --force
    Android NDK installation path: /cygdrive/c/Android/android-ndk
    Using default adb command: /cygdrive/c/Android/android-sdk-windows/platform-tools/adb
    ADB version found: Android Debug Bridge version 1.0.26
    Using final ADB command: '/cygdrive/c/Android/android-sdk-windows/platform-tools/adb'
    Using auto-detected project path: /cygdrive/d/EclipseTestWorkspace/hello-gdbserver
    Found package name: com.example.hellogdbserver
    ABIs targetted by application: armeabi
    Device API Level: 10
    Device CPU ABIs: armeabi-v7a armeabi
    Compatible device ABI: armeabi
    Found debuggable flag: true
    Found device gdbserver: /data/data/com.example.hellogdbserver/lib/gdbserver
    Using gdb setup init: /cygdrive/d/EclipseTestWorkspace/hello-gdbserver/libs/armeabi/gdb.setup
    Using toolchain prefix: /cygdrive/c/Android/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin/arm-linux-androideabi-
    Using app out directory: /cygdrive/d/EclipseTestWorkspace/hello-gdbserver/obj/local/armeabi
    ERROR: Could not extract package data directory. Are you sure that
           your installed application is debuggable?
    sh-4.1$

Пожалуйста, дайте мне знать, как я могу устранить вышеуказанную ошибку, а также как подключиться к новому пакету.

Мой телефон не укоренен. Надеюсь, что это не повлияет на gdb.

Это тоже не помогло Ссылка на аналогичную проблему. Поскольку мой телефон является новым телефоном и не имеет никакого приложения, кроме текущего приложения для разработки. (Доступны только пакеты, которые поставляются вместе с телефоном Samsung. Приложение не загружается с рынка.)

Спасибо и с уважением,
SSuman185


Пройдите по ссылке Отладка собственного кода в Android-приложении с помощью android ndk gdb

Ответ 1

Эта проблема возникнет, если вы попытаетесь отладить проект библиотеки. ndk-gdb не может подключиться к проекту, который не является "основным".

Вы должны поместить свой jni-код в исходный проект приложения.

Ответ 2

Сначала убедитесь, что вы создаете отладочную версию приложения. Файл AndroidManifest.xml должен содержать тег android: debuggable = "true".

Вы также можете проверить его, находя APK файл в каталоге bin, распаковывая его (это просто переименованный ZIP файл) и гарантируя, что папка lib\armeabi содержит файл gdbserver.

Если оба условия выше выполнены, попробуйте установить пакет на устройстве вручную:

<android-sdk>\platform-tools\adb.exe install -r <your-package-file.APK>

Пожалуйста, внимательно изучите вывод adb.exe. Если он отображает ошибку, это может объяснить вашу проблему.

Ответ 3

убедитесь, что APP_OPTIM в jni/Application.mk настроен для отладки