在我的Android应用程序中,我使用两个库,每个库都有自己的jniLibs。
图书馆1 - https://github.com/tekinarslan/AndroidPdfViewer
图书馆2 - 自定义视频播放器sdk
该应用程序将编译并构建正常。
两个库都将jniLib放在正确的位置。
似乎只有一个库可以工作,在本例中是pdfView。库2被称为。它打破了,日志说它无法为它加载jniLibs。
有没有人遇到过它?谢谢
chaeyoungx反馈后更新代码:
App Build.gradle:
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.my.app"
minSdkVersion 17
targetSdkVersion 22
versionCode 14
versionName "1.0"
ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86", "mips" }
}
....
我在两个文件中尝试了以下代码:gradle.properties(Project and Global)
android.useDeprecatedNdk=true
仍有同样的问题。
答案 0 :(得分:6)
我还尝试为我的应用程序导入2个库,但也有同样的错误。
我在网上找到了解决方案,这就是我解决问题的方法:
转到gradle.properties并添加android.useDeprecatedNdk = true
然后打开您的app文件夹中的build.gradle,然后输入
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
}
在defaultconfig {
在此之后,我只是清理并重建项目并且没有错误地工作。
我希望这适合你。
答案 1 :(得分:5)
确保您为每个abi构建了库。看看你最后的apk文件。在文件夹库中,您将找到每个abi具有库的文件夹。每个应该有相同的库。 如果你没有足够的:
排除这些文件夹,即
armeabi
lib1.so
lib2.so
lib3.so
armeabi-v7a
lib1.so
lib2.so
lib3.so
arm64-v8a
lib1.so
在这种情况下,arm64设备将转到arm64-v8a文件夹并尝试查找lib2,lib3,并且找不到它们。因此在java应用程序的gradle文件中排除arm64-v8a文件夹,因此arm64设备可以使用armeabi文件夹。