我正在尝试从实现代码
尝试编译时,出现以下错误:
Error:(339) undefined reference to `ANativeWindow_fromSurface'
Error:(340) und
Error:(349) undefined reference to `ANativeWindow_setBuffersGeometry'
Error:(351) undefined reference to `ANativeWindow_lock'
Error:(353) undefined reference to `ANativeWindow_release'
Error:(406) undefined reference to `ANativeWindow_unlockAndPost'
Error:(407) undefined reference to `ANativeWindow_release'
Error:error: linker command failed with exit code 1 (use -v to see invocation)
Information:BUILD FAILED
Information:Total time: 2.012 secs
Information:8 errors
Information:0 warnings
Information:See complete output in console
Run Code Online (Sandbox Code Playgroud)
ANativeWindow 从2个c ++ .h文件中获取,其中一个是
#include <android/native_window.h>
Run Code Online (Sandbox Code Playgroud)
和别的
#include <android/native_window_jni.h>
Run Code Online (Sandbox Code Playgroud)
现在,我的CMake文件如下所示:
cmake_minimum_required(VERSION 3.4.1)
# OpenCV stuff
include_directories(D:\\opencv-3.2.0-android-sdk\\OpenCV-android-sdk\\sdk\\native\\jni\\include)
add_library( …Run Code Online (Sandbox Code Playgroud) 我需要在 Android Studio 3.1.2 中使用 OpenCV。我拥有此 IDE 和 NDK 的最新版本(2018 年 5 月 20 日)(17.0.4754217)。
我读过这篇文章谈论它,并提到了 NDK 版本 16 的问题,但事实并非如此。
大多数指南都是针对旧版本的 Android(我看到指南谈论用于 Android 开发的 Eclipse IDE),但没有人提供最新版本或最接近的版本,这是一个问题,因为最新版本的 AS 会导致旧版本出现许多错误项目或其制作方式,因此它们使这些指南变得过时。
也许是由于我不知道如何使用 NDK 和 CMake 而引起的问题,所以如果有人知道如何或尝试过这样做,能告诉我如何将 OpenCV 添加到 Android 3.1.2,我将不胜感激,也许这篇文章可以对其他用户使用 NDK 和 AS 的未来版本有所帮助。
太喜欢了。
我试图将使用OpenCV用C++编写的现有计算机视觉代码移植到Android NDK.我按照此处提供的信息成功地为Java和NDK导入了OpenCV库版本3.4.0(使用官方预构建的Android软件包):Satck Overflow Answer - 在Android上对OpenCV进行CMake配置.
我能够使用Java和C++中的OpenCV功能编译和运行一些代码.但是,我遇到了与某些OpenCV函数相关的2个"未定义引用"链接错误:持久性JSON读取器和2D描述符匹配器.
以下是我收到的错误消息:
Build command failed.
Error while executing process D:\Librairies\Android_SDK\cmake\3.6.4111459\bin\cmake.exe with arguments {--build D:\Dev\Android\PageDetector\app\.externalNativeBuild\cmake\debug\x86_64 --target page-recognition-lib}
[1/1] Linking CXX shared library ..\..\..\..\build\intermediates\cmake\debug\obj\x86_64\recognition-lib.so
FAILED: cmd.exe /C "cd . && D:\Librairies\Android_SDK\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=x86_64-none-linux-android --gcc-toolchain=D:/Librairies/Android_SDK/ndk-bundle/toolchains/x86_64-4.9/prebuilt/windows-x86_64 --sysroot=D:/Librairies/Android_SDK/ndk-bundle/sysroot -fPIC -isystem D:/Librairies/Android_SDK/ndk-bundle/sysroot/usr/include/x86_64-linux-android -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -std=c++11 -frtti -fexceptions -std=gnu++11 -O0 -fno-limit-debug-info -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -nostdlib++ --sysroot D:/Librairies/Android_SDK/ndk-bundle/platforms/android-21/arch-x86_64 -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -LD:/Librairies/Android_SDK/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/x86_64 -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,libpage-recognition-lib.so -o ..\..\..\..\build\intermediates\cmake\debug\obj\x86_64\recognition-lib.so.so [...] -llog …Run Code Online (Sandbox Code Playgroud) 我正在使用 OpenCV 开发 OCR 应用程序。为此,我创建了onCameraFrame(),但显示“无法解析方法 putText()”。我从 stackOverFlow 中找到了一些答案,说
导入 org.opencv.core.Point;
但我已经导入了
org.opencv.core.Point; org.opencv.core.Scalar;
但仍然显示相同的错误。还有其他方法可以解决此错误吗?提前致谢。请帮我。
public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inFrame) {
Mat inputFrame = inFrame.rgba();
inputFrame.copyTo(mRgba);
switch (HelloV.viewMode) {
case HelloV.VIEW_MODE_RGBA: {
//cannot resolve method putText
Core.putText(mRgba, "Video Mode", new Point(10, 50), 3, 1,
new Scalar(255, 0, 0, 255), 2);
// Update start recordtime until starting recording
}break;
case HelloV.SAVE_IMAGE_MAT: {
long curTime = new Date().getTime();
//cannot resolve method putText
Core.putText(mRgba, "Record Mode", new Point(10, 50), 3, 1,
new Scalar(255, …Run Code Online (Sandbox Code Playgroud)