Я боролся с этим в течение 3 дней, и я не мог это сделать.
У меня есть проект Android, который ссылается на библиотеку Android, содержащую собственный код, на eclipse.
Я видел этот вопрос, схема которого совпадает с моей, но предложенные там шаги не сработают.
Я переписываю шаги здесь, а именно:
- Перейдите в меню «Выполнить» -> «Конфигурации отладки».
- В разделе «Собственное приложение Android» на левой панели выберите свое приложение.
- На вкладке «Отладчик» нажмите «Добавить…» в разделе «Общие библиотеки».
- Перейдите в каталог проекта библиотеки Android и добавьте его подкаталог obj/local/armeabi.
- Применить и отладить.
Первая проблема заключалась в том, что я не мог настроить конфигурацию отладки для собственного приложения, если приложение не настроено как собственное (только ссылки на собственное приложение), поэтому я не могу выбрать какой-либо проект для отладки.
Я попытался настроить проект приложения для 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.
set solib-search-path
. По моему опыту, не указание пути поиска не должно приводить к появлению ошибки, которую вы видите. - person Shawn   schedule 21.07.2014