我正在尝试创建一个.so库,其中包含OpenCV C++代码。
我设置了一个非常基本的东西-使用Visual Studio通过“动态共享库(Android)”模板构建项目。
我从这里下载了Android OpenCV SDK:
https://opencv.org/releases/
当我为ARM构建项目时,一切运行正常,并且我得到lib.so输出。
但是在为ARM64构建时,出现以下错误:
E0035 #error directive: This constructor has not been ported to this platform File: C:\Microsoft\AndroidNDK64\android-ndk-r16b\sources\cxx-stl\llvm-libc++\include\bitset (line 266)
这是我设置项目属性的方法:
ARM和ARM64:
Properties -> C/C++ -> Additional include directories = <openCV android sdk folder>\sdk\native\jni\include
臂:
Properties -> Linker -> General -> Additional library directories = <openCV android sdk folder>\sdk\native\libs\armeabi-v7a
Properties -> Linker -> Input-> Additional dependencies = <openCV android sdk folder>\sdk\native\libs\armeabi-v7a\libopencv_java4.so
ARM64:
Properties -> Linker -> General -> Additional library directories = <openCV android sdk folder>\sdk\native\libs\arm64-v8a
Properties -> Linker -> Input-> Additional dependencies = <openCV android sdk folder>\sdk\native\libs\arm64-v8a\libopencv_java4.so
如果我针对低于21的android API,则在为ARM进行构建时能够得到完全相同的错误。
关于如何解决问题的任何想法?
最佳答案
我遇到了同样的问题,决定下载OpenCV Android SDK https://github.com/opencv/opencv/releases/tag/4.4.0并使用NDK而不是编译源代码
关于android - OpenCV无法为ARM64目标构建(Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64249298/