Пробуем готовую программу и получаем ошибку неудовлетворенной ссылки исключения

#android

#Android

Вопрос:

Кажется, я не в себе. Я пытался изменить последовательные порты Linux TTY на Android, чтобы они работали как обычные последовательные порты (вход и выход). После некоторых усилий я нашел следующую веб-страницу:

http://code.google.com/p/android-serialport-api/

Я решил, что вместо того, чтобы изобретать велосипед, я бы скопировал проект android-serialport-api на

http://code.google.com/p/android-serialport-api/source/browse/#svn/trunk/android-sercd%3Fstate%3Dclosed

и пытаемся заставить ее работать. Я собрал ее с помощью Eclipse. Он собран без ошибок.

Это проект для демонстрации ядра, которое позволяет выполнять запись на последовательные порты Linux TTY. Я запустил приложение с помощью debug, и меню появилось просто отлично. Я выбрал «Настройка» в меню, и приложение работало просто отлично. Затем я выбрал консоль и получил следующую ошибку: Поток [<1> основной] (Приостановлен (ошибка неудовлетворенной ссылки исключения])

Хм, мне кажется, это говорит мне о том, что существует какая-то библиотека динамических ссылок, которая недоступна. Может ли это быть что-то в ядре Linux? Я знаю, что ядро будет загружать модули динамически.

Связано ли это с libserial_port.so файл в project / libs / armeabi? Должен ли я как-то загружать этот файл библиотеки в Linux? Есть ли какой-нибудь инструмент для этого? Я успешно загрузил модифицированное ядро (serial.img) с помощью fastboot. Должен ли я загружать вышеупомянутый файл после (во время?) загружаю измененное ядро? Любые подсказки были бы оценены.

Веб-страница, похоже, предполагает много знаний, которых мне не хватает. Есть ли у кого-нибудь ссылки на страницы (или книги), которые могли бы заполнить эти знания?

Спасибо!

Ответ №1:

Скорее всего, ошибка неудовлетворенной ссылки возникает из-за того, что встроенная библиотека не упаковывается в ваш apk, а затем не распаковывается в нужном месте на устройстве при установке apk. Также может быть, что библиотека зависит от системной библиотеки, которая присутствовала на более раннем устройстве, но недоступна на вашем (т. Е. они использовали что-то, что не было общедоступным интерфейсом). Чтобы знать наверняка, вам нужно будет заглянуть в журнал logcat.

У них также есть предварительно скомпилированный APK, который вы могли бы попробовать.

В дополнение к ядру, они также, похоже, предоставляют измененный образ ramdisk, вероятно, для создания файлов последовательного устройства при загрузке и / или их chmod, чтобы сделать их доступными для некорневых идентификаторов пользователей.

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

Комментарии:

1. Ах! Файл журнала. ДА. Я заглянул в нее, и там говорилось, что следующий файл отсутствует: C:Program FilesAndroidandroid-sdksamplesandroid-8AndroidManifest.xml. Конечно же, я зашел в каталог, и этот файл отсутствует. Вы знаете, почему этот файл существует? Почему программа может пытаться получить к ней доступ? И почему я могу ее пропустить?

2. Для проекта Android требуется manifest.xml похоже, вы, возможно, «частично» импортировали проект и оставили ссылку на каталог образцов sdk внутри. Но это ошибка сборки. Или, по крайней мере, если это ошибка времени выполнения, исходящая из вывода logcat на устройстве, что-то СЕРЬЕЗНО сломано.