相关疑难解决方法(0)

使用NDK的Android未定义参考

我正在尝试从实现代码

这里

尝试编译时,出现以下错误:

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)

c++ android android-ndk

4
推荐指数
1
解决办法
4715
查看次数

如何将 OpenCV 库添加到 AS3.1.2 和 NDK 17.0

我需要在 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 的未来版本有所帮助。

太喜欢了。

android opencv android-ndk android-studio

4
推荐指数
1
解决办法
1315
查看次数

将Android上的错误与OpenCV 3.4.0和NDK相关联

我试图将使用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)

c++ android opencv gradle android-ndk

4
推荐指数
1
解决办法
3636
查看次数

无法使用 Android 在 OpenCV 中解析 putText()

我正在使用 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)

java android opencv

2
推荐指数
1
解决办法
1785
查看次数

标签 统计

android ×4

android-ndk ×3

opencv ×3

c++ ×2

android-studio ×1

gradle ×1

java ×1