надеюсь, что вы можете мне помочь здесь. Мне удалось создать проект моей родной деятельности и упаковать его. В папке libs у меня есть общая библиотека, которая динамически загружается (dlopen) внутри собственной активности. Я знаю, что пакеты libs копируются в: /data/data/packagename/lib но как я могу получить к нему доступ с помощью dlopen? Это возможно? Я думал, что могу получить доступ к нему, используя только имя локальной папки, например: ./libMySharedLibrary, потому что все они находятся в подпапке APK/libs. Кто-нибудь, как добраться до правильного имени папки или как получить доступ к этим разделяемым библиотекам?Динамическая загрузка общего объекта, который находится в папке APK libs
1
A
ответ
0
Динамический компоновщик уже знает о ваших пакетов частных библиотек - просто передать имя файла и все должно быть в порядке:
dlopen("libawesome.so", RTLD_LAZY);
P.S. Чтобы избежать неожиданностей, вы должны убедиться, что имя вашей библиотеки уникально и не сталкивается с системными (они размещены по адресу /system/lib
и /vendor/lib
, а также проверьте каталоги lib64
на 64-битных устройствах).
Смежные вопросы
- 1. Загрузка общего объекта в AIX?
- 2. динамическая загрузка в silverlight
- 3. printfs внутри общего объекта (динамическая библиотека) не получает напечатанной
- 4. Dexguard пропуская JNI LIBS в версии APK
- 5. Есть ли разница между подписанным apk и тем, который находится в моей папке bin?
- 6. Динамическая загрузка UIWebview
- 7. Что такое proguard.txt в папке libs/Android для Android?
- 8. Доступ к папке libs в пакете приложений
- 9. Динамическая загрузка размер структуры в C
- 10. Динамическая загрузка в Голанге?
- 11. Динамическая загрузка зависимости в maven
- 12. Динамическая загрузка QTGui
- 13. Android файлов расширения APK LIBS проблемы
- 14. Динамическая загрузка Leadtools DLLs
- 15. Вызов объекта, который находится в объекте
- 16. создание объекта js, который находится в iframe
- 17. Загрузка Kohana 3.2. Где находится папка views в папке приложения?
- 18. Синхронизация общего объекта, который используется рабочими потоками
- 19. Открыть файл, который находится в папке ресурсов/в банке
- 20. Динамическая загрузка файла JavaScript
- 21. AngularJS Динамическая загрузка контроллера
- 22. Динамическая загрузка модуля в питона
- 23. Динамическая загрузка DLL
- 24. Динамическая загрузка .NET assemblys
- 25. Где находится classes.dex в apk?
- 26. Динамическая загрузка Javascripts
- 27. Yii - Динамическая загрузка контроллера
- 28. Динамическая загрузка компонентов в SWT
- 29. Загрузка arm-shared-libs в Marmalade SDK
- 30. Как открыть текстовый файл, который находится не в одной папке?
Скажем, мое имя пакета: ** com.android.example **. Когда я это сделаю: ** adb shell run-as com.android.example ** и просмотрите папку **/lib **, я не вижу свою общую библиотеку. Я вижу общую библиотеку в файле .apk, но после ее установки с ** ant installd ** она не находится в этой папке. Предполагается, что общая библиотека должна быть скопирована в эту папку? – yaakuro
Настраиваемые библиотеки @yaakuro AFAIK копируются в ['nativeLibraryDir'] (https://developer.android.com/reference/android/content/pm/ApplicationInfo.html#nativeLibraryDir). И похоже, что это не всегда ваш пакет 'lib'. В любом случае вопрос был не в расположении библиотеки, а в правильном способе загрузить их в собственный код. Вы пытались использовать 'dlopen()' только с базовым именем библиотеки? – Sergio