Не удается подключить ndk-gdb к приложению Android - PullRequest
11 голосов
/ 25 ноября 2011

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

Я использую 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's data directory. Are you sure that
           your installed application is debuggable?
    sh-4.1$

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

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

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

Спасибо и всего наилучшего,
SSuman185


Пожалуйста, перейдите по ссылке Отладка нативного кода в приложении Android с помощью Android ndk GDB

Ответы [ 4 ]

6 голосов
/ 01 августа 2012

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

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

5 голосов
/ 24 июня 2012

Пожалуйста, сначала убедитесь, что вы создаете отладочную версию приложения.Файл 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 голосов
/ 25 сентября 2012

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

0 голосов
/ 21 июня 2013

Согласно http://developer.samsung.com/forum/thread/ndk-debugging-with-gdb/77/178834 некоторые телефоны Samsung не могут быть отлажены в исходном режиме без рутирования, потому что run-as не работает

См. Run-as Пакет 'abc' неизвестен - Galaxy S4 Jellybean илиAndroid 4.3 для моего решения

...