Не удается отладить собственный код Android, построенный на библиотеке Android, в eclipse


Я боролся с этим в течение 3 дней, и я не мог это сделать.
У меня есть проект Android, который ссылается на библиотеку Android, содержащую собственный код, на eclipse.
Я видел этот вопрос, схема которого совпадает с моей, но предложенные там шаги не сработают.

Я переписываю шаги здесь, а именно:

  1. Перейдите в меню «Выполнить» -> «Конфигурации отладки».
  2. В разделе «Собственное приложение Android» на левой панели выберите свое приложение.
  3. На вкладке «Отладчик» нажмите «Добавить…» в разделе «Общие библиотеки».
  4. Перейдите в каталог проекта библиотеки Android и добавьте его подкаталог obj/local/armeabi.
  5. Применить и отладить.

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

Я попытался настроить проект приложения для Android как имеющий природу c/С++ с фиктивным jni/Android.mk, так как он просто не показывает никаких ошибок при сборке. (Однако я сомневаюсь, что это правильный путь)
После этого приложение запускается и связывается правильно, и я могу выполнить эти шаги -- с 1 по 5. Но во время отладки консоль показывает (BasicCharacterWithLib is название приложения):

[2014-05-27 12:18:09 - BasicCharacterWithLib] Error while obtaining file from device
[2014-05-27 12:18:09 - BasicCharacterWithLib] com.android.ddmlib.SyncException: Writing local file failed!

И он никогда не остановится ни на одной точке останова (собственной или нет).

Я также знаю об этот другой вопрос, имеющий те же симптомы на другая конфигурация (непосредственное выполнение приложения), но она остается без ответа.

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

Вы знаете, как это решить?

некоторые дополнительные детали:

  • Я использую eclipse из пакета adt (версия v22.6.2, самый высокий доступный уровень API sdk — 19, а версия ndk — r9)
  • Приложение работает в нескольких потоках (выполняется из Java через AsyncTask), но в этот момент инициируется только основной поток.
  • Процесс отладки работает только на стороне Java, если я отлаживаю его как приложение для Android, даже в многопоточном режиме.
  • Я установил APP_PLATFORM как android-14 в Application.mk, так же, как minSdkVersion="14" в манифесте.
  • Я также попытался перезапустить eclipse, перезагрузить устройство и снова отключить и снова подключить USB.

person Jserra    schedule 27.05.2014    source источник
comment
Я обнаружил, что кнопка «Добавить» в разделе «Общие библиотеки» не добавляет требуемую косую черту в конце. Вы можете покопаться в файлах настроек eclipse и отредактировать значение, но немного проще просто убедиться, что вы установили командный файл gdb, который вызывает set solib-search-path. По моему опыту, не указание пути поиска не должно приводить к появлению ошибки, которую вы видите.   -  person Shawn    schedule 21.07.2014


Ответы (1)


См. этот вопрос. Вероятно, это может быть та же проблема, что и папка obj/local/armeabi не существует на диске.

person Shawn    schedule 17.07.2014
comment
Боюсь, это не относится к моему вопросу. Я могу отлаживать библиотеку, если я превращаю ее в само приложение. Проблема в том, что это библиотека Android - person Jserra; 18.07.2014