Сбой libusb на устройстве / эмуляторе Android ARM - PullRequest
3 голосов
/ 08 апреля 2011

Я использую NDK для компиляции libusb (оба из предварительно скомпилированного файла, поставляемого по адресу: https://github.com/monaka/libusb-android), а также использую его изменения для компиляции последних доступных (libusb-1.0.8). Похоже, что для загрузкии первоначальный вызов "init ()" не возвращает ошибку. Однако, когда я пытаюсь сделать базовый вызов в библиотеку для перечисления устройств (из примера кода lsusb, включенного в libusb), я получаю сбой. Используя NDKПредоставив "arm-eabi-addr2line" и адрес, который дамп предоставляет как ошибку, я отследил его до того, что метод перечисления устройств в libusb получает "неизвестный статус" от устройства, которое он находит, что вызывает "usbi_log () "метод, который должен вызываться при возникновении сбоя. Инструменты NDK не дают мне номера строк, так что это все, что я имею в виду, где происходит ошибка.

Исходный репозиторий libusb: http://git.libusb.org/?p=libusb.git;a=summary;js=1

Я делаю простой JNI-вызов в libusb из простого действия, хотя у меня нет никаких оснований думать, что это часть проблемы.sic .h (из javah) файла и .c файл, который копирует действие предоставленной программы-примера "lsubs", а класс Action делает только вызов функции в методе onLoad ().

Я также получаюсбой при запуске в эмуляторе.Также отключите устройство (Nexus One), чтобы отключить отладку (также отключено в Приложениях-> Разработка на устройстве) и чтобы шина USB (теоретически) была пустой (по крайней мере, от внешних физических устройств) и получить такой же сбой.

Версия устройства и эмулятора Android: 2.2
Версия NDK: r5b
Версия ADK: r10
ОС хоста: OSX

Спасибо за любую помощь, которую вы можете предоставить!

1 Ответ

0 голосов
/ 01 мая 2011

Если вы устанавливаете демон ssh на телефон, вы можете подключиться к нему через ssh с помощью переадресации портов, запустить gdbserver и подключиться к нему из gdb на компьютере.

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

...