gpt4 book ai didi

android - 有没有办法使用同一个库的两个不同版本,所以android中的文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:55:32 25 4
gpt4 key购买 nike

我有一个使用 OpenCV 3.1 的应用程序。我将 lib_opencv_java.so 文件复制到 jniLibs 文件夹中。现在我想将一个新的 sdk 集成到我的应用程序中,但是这个 SDK 也使用不同版本的 OpenCV。 SDK OpenCV 库随 Gradle 添加,未复制到 jni 文件夹。当我构建应用程序时,它在编译时出现错误:

More than one file was found with OS independent path 'lib/arm64-v8a/libopencv_java3.so'

为了解决这个问题,我重命名了我的 OpenCV 并用不同的名称重新生成了 .so 文件。之后,它没有给出上述问题,但是当我尝试打开使用 OpenCV 的 Activity 时。应用程序因以下错误而崩溃:

java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol “_ZN2cv7imwriteERKNS_6StringERKNS_11_InputArrayERKSt6vectorIiSaIiEE” referenced by “/data/app/io.xxxxxx-gilxH9B4dAHGtuXtU4Sl6Q==/lib/arm64/libProcess.so”.

最佳答案

要正确消除以下错误:

More than one file was found with OS independent path 'lib/arm64-v8a/libopencv_java3.so'

您应该在 app/build.gradle

中使用以下代码
android{
...
packagingOptions {
pickFirst 'lib/x86_64/libopencv_java3.so'
pickFirst 'lib/x86/libopencv_java3.so'
pickFirst 'lib/arm64-v8a/libopencv_java3.so'
pickFirst 'lib/armeabi-v7a/libopencv_java3.so'
}
...
}

关于android - 有没有办法使用同一个库的两个不同版本,所以android中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54452509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com