简体   繁体   English

共享库未在Android上加载

[英]Shared library not loaded on Android

I would like to use MediaInfo library in my application. 我想在我的应用程序中使用MediaInfo库。 It is not easy to compile it for Android but I found an already compiled binary version here . 在Android上编译它并不容易,但是我在这里找到了已经编译的二进制版本。

I use QtCreator to develop my application and build the installation APK. 我使用QtCreator开发应用程序并构建安装APK。 On Windows everything runs fine. 在Windows上,一切运行正常。 But if I try it on Android, I first get this error when starting the application: 但是,如果我在Android上进行尝试,则在启动应用程序时首先会收到以下错误消息:

D/dalvikvm( 3296): Trying to load lib/data/app-lib/org.qtproject.muzika-2/libmediainfo.so 0xb3d087b0 D / dalvikvm(3296):尝试加载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! E /链接器(3296):“ libmediainfo.so”:忽略共享库中的2项DT_PREINIT_ARRAY!

D/dalvikvm( 3296): Added shared lib/data/app-lib/org.qtproject.muzika-2/libmediainfo.so 0xb3d087b0 D / dalvikvm(3296):添加了共享的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 / dalvikvm(3296):在/data/app-lib/org.qtproject.muzika-2/libmediainfo.so 0xb3d087b0中找不到JNI_OnLoad,跳过了init

But at least it seems the library was found an loaded. 但至少看来该库已被加载。 But if I try to actually use it, I get always this output: 但是,如果我尝试实际使用它,则总是得到以下输出:

D/libMuzika.so( 3296): (null):0 ((null)): "Unable to load libmediainfo.so" D / libMuzika.so(3296):(空):0((空)):“无法加载libmediainfo.so”

I do believe the error message comes from the header file of this library . 我相信错误消息来自该库头文件 For some reason the library is not loaded. 由于某种原因,库未加载。 But I'm not able to figure out why. 但是我不知道为什么。

How can I find out what is the problem? 我如何找出问题所在?

My solution is a hack. 我的解决方案是破解。

1.Download Mediainfo app from Here . 1.从这里下载Mediainfo应用程序。

2.Open APK file with WinZip. 2.使用WinZip打开APK文件。

3.Extract files in libs folder. 3.提取libs文件夹中的文件。

4.Select libmediainfo.so base on your architecture. 4.根据您的体系结构选择libmediainfo.so。

5.Use this libs instead of this . 5.使用此库代替this

This lib work for me. 这个lib为我工作。

Maybe help. 也许有帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM