У меня есть андроид проект с структурой libs
папок, как это:Почему не копируется libgnustl_shared.so из моего APK?
/libs
/armeabi
libfoo.so
libbar.so
libmystuff.so
libgnustl_shared.so
/armeabi-v7a
libfoo.so
libbar.so
foo
и bar
являются сторонними библиотеками, mystuff
моя собственная библиотека из отдельного андроида проекта JNI, который требует gnustl_shared
, что из тех же JNI.
Когда я создаю свой проект в Eclipse, я могу просмотреть содержимое сгенерированного APK с помощью unzip -l
, и это действительно показывает, что все эти файлы библиотеки были включены.
Однако после установки APK папка /data/data/com.myproject/lib
не содержит libgnustl_shared.so
, хотя имеются и другие библиотеки.
Это неизбежно приводит к следующей ошибке:
UnsatisfiedLinkError: Couldn't load gnustl_shared: findLibrary returned null
В качестве проверки вменяемости, я побежал adb push ./libs/armeabi/libgnustl_shared.so /data/data/com.myproject/lib
и достаточно уверенный, приложение запускается как и ожидалось.
Я ничего не вижу в журнале сборки или консоли Eclipse, что предполагает наличие каких-либо проблем при создании или установке приложения.
- Что может помешать установке
libgnustl_shared.so
с моим приложением? - Где я могу узнать, что произойдет, когда APK установлен?
Пожалуйста, дайте мне знать в комментариях, если есть какая-либо конкретная информация, которую я могу предоставить, что может помочь.
дважды проверьте MainFest для операторов, включая всех LIBS. –
@RobertRowntree - Не могли бы вы объяснить, что вы имеете в виду? Мне никогда не нужно было указывать библиотеки в AndroidManifest.xml для других проектов, если это то, о чем вы говорите. – namuol
читайте здесь: http://developer.android.com/tools/projects/projects-cmdline.html#ReferencingLibraryProject –