Я создал приложение Native-Activity для Android в Visual Studio 2015. Если я просто запустил пример кода, приложение работает. Однако я хочу использовать и внешнюю библиотеку в своем приложении. Для этого, я следующее:связывание библиотеки с приложением android ndk в visual studio 2015
- Добавить включаемые каталог в C/C++ -> Общие-> Additional Include Directories
- Добавьте Lib/путь х86 Linker-> общ-> Дополнительные каталоги библиотек
- Добавить имя библиотеки в Linker-> Вход-> зависимости библиотеки
с этими настройками я могу использовать некоторые библиотеки коды в моем проекте и получить его компиляцию. Если, например, я должен опустить библиотечный каталог, компилятор жалуется на нереализованные функции.
Но если я запустил сгенерированный apk на эмуляторе или Android-телефоне, он мгновенно сработает, даже до того, как ударит точка останова.
Даже если я фактически не использую библиотеку (закомментируйте весь мой собственный код), но просто свяжите ее, приложение выйдет из строя.
Один ключ, который у меня есть, даже если библиотека используется для компиляции приложения, она не копируется в файл apk. Я распаковал apk, и он включает в себя 2 файла в lib \ x86: gdbserver и libAndroid1.so (который является скомпилированной версией моего собственного действия). Но библиотека, которую я связал, просто не существует.
Я предполагаю, что я должен указать где-нибудь в проекте, что я хочу, чтобы моя библиотека была включена в apk, но где я это делаю?
_ "он включает 2 файла в lib \ x86" _. Итак, просто чтобы убедиться: ваш Android-телефон и AVD, которые вы создали для использования в эмуляторе, являются x86-based? – Michael
нет, телефон ARM-based. VS генерирует два файла apk: по одному для каждой платформы. Это зависит от того, какую конфигурацию я выбираю, когда компилирую и запускаю. ARM apk содержит те же файлы, но в lib \ armeabi-v7a. – yvanvds
Можете ли вы поделиться журналом Android Logcat с проблемой, с которой вы столкнулись? –