我想知道如何将libyuv库包含到我的Android Studio项目中。我有一个预编译的二进制文件"libyuv_static. a"文件,但我做了所有的事情将它包含到我的项目中。我在src/main中创建了一个名为jniLibs的文件夹,并将二进制文件放入该文件夹中,但在运行时它不会加载库,它会给我以下信息:
原因:java. lang.未满足链接错误:无法从加载程序dalvik加载libyuv2rgb。系统路径类加载程序[dexPath =/data/app/com. example. myproject-1.apk,libraryPath =/data/app-lib/com. example. myproject-1]:findLibrary返回空值
。有没有人可以分享他/她的经验。
2条答案
按热度按时间wqsoz72f1#
为了将原生库包含到Android项目中,您必须获得.so文件(共享库),而不是.a(静态库)。
也就是说,你最终应该得到
src/main/jniLibs/<abi>/libyuv_shared.so
,<abi>
是 *armeabi,armeabi-v7 a,arm 64-v8 a,x86,x86_64,mips,mips 64 *(你的应用和库支持的任何架构)。1aaf6o9v2#
现在有一个Android软件包:https://github.com/crow-misia/libyuv-android,可从mavenCentral安装:
有关用法,请参见https://github.com/crow-misia/libyuv-android/blob/main/sample/src/main/java/app/MainActivity.kt