android - Android 上未加载共享库

标签 android c++ qt shared-libraries

我想使用MediaInfo我的应用程序中的库。为Android编译它并不容易,但我找到了一个已经编译的二进制版本here .

我使用 QtCreator 来开发我的应用程序并构建安装 APK。在 Windows 上一切都运行良好。但如果我在 Android 上尝试,我会在启动应用程序时首先收到此错误:

D/dalvikvm( 3296): Trying to load lib/data/app-lib/org.qtproject.muzika-2/libmediainfo.so 0xb3d087b0

E/linker ( 3296): "libmediainfo.so": ignoring 2-entry DT_PREINIT_ARRAY in shared library!

D/dalvikvm( 3296): Added shared lib/data/app-lib/org.qtproject.muzika-2/libmediainfo.so 0xb3d087b0

D/dalvikvm( 3296): No JNI_OnLoad found in /data/app-lib/org.qtproject.muzika-2/libmediainfo.so 0xb3d087b0, skipping init

但至少看起来该库已被加载。但如果我尝试实际使用它,我总是得到这样的输出:

D/libMuzika.so( 3296): (null):0 ((null)): "Unable to load libmediainfo.so"

我确实相信错误消息来自 header file of this library 。由于某种原因,该库未加载。但我不明白为什么。

如何找出问题所在?

最佳答案

我的解决方案是黑客。

1.从Here下载Mediainfo应用程序.

2.使用WinZip打开APK文件。

3.解压libs文件夹中的文件。

4.根据您的架构选择libmediainfo.so。

5.使用此库代替 this .

这个库对我有用。

也许有帮助。

关于android - Android 上未加载共享库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39448593/

相关文章:

java - 如何加速 Android XML 解析?

android - 云消息和安卓

c++ - 无法在 Eclipse 中作为 C++ 项目运行

linux - 当我启动调试器时无法运行另一个应用程序

c++ - static_cast 的神秘行为

macos - OSX 10.5.8 上的 Qt : "The root CA certificate is not trusted for this purpose"

android - 启动 ACTION_VIEW Activity 以打开浏览器,如何返回我的应用程序?

java同步方法中的线程安全错误

c++ - Eclipse c++ makefile 项目输出

c++ - 错误 C2248 : 'std::basic_ios<_Elem,_Traits>::basic_ios' : cannot access private member declared in class 'std::basic_ios<_Elem,_Traits>'