Я использую 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
Спасибо за любую помощь, которую вы можете предоставить!