Будь-який простий спосіб входу в код Android NDK?


77

Я шукаю спосіб легко налагодити код C в додатку Android NDK за допомогою Eclipse. Я читав способи налагодження програми за допомогою gdb або чогось подібного, але те, що я хочу, це спосіб якось надсилати повідомлення до Eclipse.

Я шукаю рішення, настільки просте, як використання функції друку на мові C та його бачення в Журналі DDMS або будь-якому подібному. Хтось має досвід цього робити?

Відповіді:


138

Ви можете використовувати засоби реєстрації Android:

Переконайтеся, що ви також посилаєтесь на бібліотеку журналу у вашому файлі Android.mk:


1
Якщо ви використовуєте нову інтеграцію Gradle NDK в Android Studio (експеримент Gradle), вам потрібно додати цей рядок ldLibs.addAll (['android', 'log']) до параметрів android.ndk.
Садех Ганбарі

19

Наразі ніхто не публікував інформацію про різні рівні журналів. Відповідь - спроба зробити "картинку" реєстрації повною .

Використання:

Зв’яжіть бібліотеку журналів Android, як показано нижче.

Android.mk :

CMakeLists.txt :

Подальше читання: Лісозаготівля


13

Найпростіший спосіб - це, мабуть, перенаправити оператори printf () до системного журналу (на основі розділу "Перегляд stdout і stderr" офіційного довідкового посібника ADB .

Введіть ці 3 команди в командному рядку:

Потім ви можете переглянути вихідні дані своїх операторів "printf ()", переглянувши вікно "LogCat" у програмі Eclipse Debugger або ввівши це в командному рядку:

Тільки майте на увазі, що оскільки дані буферизуються перед передачею з емулятора або пристрою, ви обов’язково повинні очистити буфер stdout, наприклад:

Потім ви побачите повідомлення журналу, що починається з "I / stdout:"


4
Зверніть увагу, що це рішення порушує тести JUnit. Дивіться: stackoverflow.com/questions/3462850 / ...
Себастьян Krysmanski


2

ADT 20 включає плагін NDK, який забезпечує підтримку побудови та налагодження проектів NDK в Eclipse. Цей документ описує, як встановити та використовувати плагін NDK. Інструкції досить прості і складаються з декількох кроків.

Це найпростіше рішення, яке я знайшов, і воно для мене спрацювало.

Примітка: Якщо ви використовуєте пакет ADT, вам потрібно лише встановити засоби розробки C із встановленням нового програмного забезпечення (див. Знімок екрана), і ви можете негайно перейти до частини "Використання плагіна NDK".

c dev tools встановити

Редагувати: Схоже, проблема із CDT у eclipse juno http://code.google.com/p/android/issues/detail?id=33788 спричиняє відладчик eclipse, який не може знайти точки зупинки. Обхідне рішення, яке я використовував, - це запуск програми в режимі налагодження (не налагодження як власної програми, а "звичайна" налагодження), а потім у командному рядку я перейшов до кореня мого проекту та набрав ndk-gdb(це створює gdb.setupфайл уobj/local/armeabi папці). Після цього точки зупинки працювали як завжди.

У коментарях, що стосуються проблеми за посиланням вище, вони пропонують деякі інші обхідні шляхи, але я не намагався їх, оскільки вони, здавалося, вимагали більше зусиль, ніж це.


2

Ви також можете трохи утиліти

Використання:


0

Для тих, хто бореться з

не працює, просто додайте його після кожного

Не знаю чому, але мені це вдалося.

На здоров’я!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.