相关疑难解决方法(0)

仍然收到警告:配置'编译'已经过时,已被'实施'取代

我已经更换的每次出现compileimplementation在我的项目build.gradle,但我仍然得到这样的警告:

在此输入图像描述

我试图在整个项目中寻找"编译"但没有找到匹配.那可能是什么原因?

android build gradle

324
推荐指数
10
解决办法
19万
查看次数

Android Studio中的OpenCV

我想在Android Studio的应用程序中使用OpenCV库.我按照这里的说明,但我得到错误

未找到名称"default"的配置

有什么不对?

我使用带有gradle 2.2.1的Android Studio 1.0.

android opencv gradle android-studio

136
推荐指数
5
解决办法
18万
查看次数

如何安装自定义CMake-Find模块

我使用CMake和CPack配置和打包我的库.我已经编写了自己的find-module FindMyLib.cmake.

如何告诉CMake/CPack将此文件添加到CMake模块目录中,以便将来的开发人员可以简单地指定FIND_PACKAGE(MyLib)来使用我的库?

cmake cpack

52
推荐指数
3
解决办法
6万
查看次数

OpenCV for Android可以利用标准C++支持在Android Studio 2.2 for Windows上获得本机构建支持吗?

围绕获取原生opencv for android构建有很多问题和答案.有些使用gradle,有些则使用外部工具.对于原生OpenCV构建,这些众多,复杂且经常相互矛盾的描述可能会以一致的起点进行简化; 在创建Android Studio 2.2 Beta项目时,有一种方法可以包含C++支持: 包括C++支持在此输入图像描述

此功能是在2016年6月左右添加的.有关详细信息,请参阅Android工具技术文档.

将Android Studio 2.2或更高版本与Gradle 2.2.0或更高版本的Android插件一起使用,您可以将C和C++代码编译到Gradle可以与您的APK打包的本机库中,从而为您的应用添加C和C++代码.然后,您的Java代码可以通过Java Native Interface(JNI)调用本机库中的函数.如果您想了解有关使用JNI框架的更多信息,请阅读适用于Android的JNI技巧.

检查Include C++ Support生成一个名为的外部构建文件CMakeLists.txt.

# Sets the minimum version of CMake required to build the native
# library. You should either keep the default value or only pass a
# value of 3.4.0 or lower.

cmake_minimum_required(VERSION 3.4.1)

# Creates and names a library, sets it as either STATIC
# or SHARED, and provides the relative paths to its source code.
# …
Run Code Online (Sandbox Code Playgroud)

windows java-native-interface cmake android-studio opencv4android

27
推荐指数
2
解决办法
9923
查看次数

如何为Android Studio启用C++ 11?

我正在使用Android studio 1.3.2 + ndk-r11b-windows-x86_64并尝试使用本机代码和C++ 11功能(share_ptr,weak_ptr等)构建项目,但是出现了一些错误.例如:

错误:(22,6)错误:命名空间'std'中的'shared_ptr'未命名模板类型

问题是:如何在Android Studio + NDK中使用C++ 11?

ps我cppFlags.add ("-std=c++11")在"build.gradle"中添加了标志

 android.ndk {
        moduleName = "game"
        cppFlags.addAll(["-I${file("src/main/jni/native_app_glue")}".toString(),
                         "-I${file("src/main/jni")}".toString(),
                         "-I${file("src/main/jni/data")}".toString()])
        cppFlags.add ("-std=c++11")
        ldLibs.addAll(["android", "EGL", "GLESv2", "OpenSLES", "log"])
        stl        = "stlport_static"
}
Run Code Online (Sandbox Code Playgroud)

但它似乎没有用.

c++ android c++11 android-studio

12
推荐指数
1
解决办法
1万
查看次数

在Android Studio中解决已弃用的NDK警告

我有一个Android应用程序,它使用OpenCV的Java包装器进行图像处理.要将OpenCV添加到项目中,我必须将以下行添加到gradle.properties:

android.useDeprecatedNdk=true
Run Code Online (Sandbox Code Playgroud)

在我很长一段时间(我现在正在使用Gradle 2.2.2和Android Studio 2.2.2)更新我的Android Studio和Gradle之前,这一直工作正常,没有任何警告或错误(我知道).现在,当我构建我的应用程序时,我在消息窗口中收到以下警告:

警告:找到本机C/C++源代码,但似乎未配置NDK选项.请注意,如果您有Android.mk,则不会用于编译.建议的解决方法是通过添加以下内容来删除默认的jni源代码目录:

警告:gradle.properties中useDeprecatedNdk标志启用的不推荐的NDK集成将很快从Android Gradle插件中删除.

尽管此时构建成功,但正如第二个警告所示,这很可能在将来会造成一些麻烦,因此我希望在事情横空出现之前尽快解决它们.

有谁知道如何解决这些警告?或者除了添加所有已编译的代码(.so文件)并设置我之前提到的标志之外,还有其他方法可以将OpenCV导入Android项目吗?任何有关这方面的帮助将不胜感激.

android opencv gradle android-ndk

8
推荐指数
1
解决办法
4223
查看次数

Android.mk和Application.mk构建OpenCV 3.2

我已经下载了OpenCV for Android Version 3.2并将其java模块导入我的项目.我已经将原生(c ++)代码复制到了modules目录中openCVLibrary320/app/src/main/jni.

如何创建Application.mk和Android.mk来编译这个sdk?(据我所知,ndk-build需要这两个文件)

android opencv android-ndk android-studio

6
推荐指数
1
解决办法
2475
查看次数

OpenCv与Android studio 2.2+一起使用新的classl与cmake - undefined reference

我在使用Android Studio 2.2的原生OpenCv 3.0.0时遇到了麻烦,新的ndk支持即使用CMAKE构建脚本.以下是我得到的错误.我在我的gradel或cmake文件中遗漏了什么?请告诉我.

错误:FAILURE:构建因异常而失败.

  • 出了什么问题:任务':app:externalNativeBuildDebug'执行失败.

    构建命令失败.使用参数{--build E:\ OpenCvAndroid\OPecvTry2CSupport\app.externalNativeBuild\cmake \执行'C:\ Users\User\AppData\Local\Android\sdk\cmake\3.6.3155560\bin\cmake.exe'时出错debug\mips64 --target native-lib} [1/1]链接CXX共享库..\_ obj\mips64\libnative-lib.so失败:cmd.exe/C"cd.&& C:\ Users\User\AppData\Local\Android\sdk \ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang ++.exe -target mips64el-none-linux-android -gcc-toolchain C:/ Users/User/AppData/Local/Android/sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/windows-x86_64 --sysroot = C:/ Users/User/AppData/Local/Android/sdk/ndk-bundle/platforms/android- 21/arch-mips64 -fPIC -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa, - noexecstack -Wformat -Werror = format-security -fno-exceptions - fno-rtti -O0 -fno-limit-debug-info -Wl, - build-id -Wl, - warn-shared-textrel -Wl, - fatal-warnings -Wl, - no-undefined -Wl, -z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,libnative-lib.so -o ..\obj\mips64\libnative-lib.so CMakeFiles/native-lib.dir/src /main/cpp/native-lib.cpp.o -llog -lm"C:/ Users/User/AppData/Local/Android/sdk/ndk-bundle/sources/cxx-stl/gnu-libstdc ++/4.9/libs/mips64/libgnustl_static.a"&& cd." CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o:在函数~Mat': E:/OpenCVSdk/sdk/native/jni/include\opencv2/core/mat.hpp:278: undefined …

android opencv gradle android-ndk android-studio-2.2

5
推荐指数
1
解决办法
5279
查看次数

OpenCV Android本机代码构建问题

我正在学习如何使用OpenCV编写C++代码,我想在Android中运行它.我使用Android Studio.

我创建了一个支持C++的新简单项目,然后我将测试代码添加到C++文件中.看来,我自己的文件编译和链接.

现在,我认为与我的项目无关的其他因素导致许多错误.它似乎是NDK内部的东西.它可能是最新版本中的错误,如果是这样,我该怎么办呢?

  C:/Android/sdk/ndk-bundle/toolchains/x86-4.9/prebuilt/windows-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/bin\ld: error: C:/Android/OpenCV-android-sdk/sdk/native/3rdparty/libs/x86/libippicv.a(jmp_icvippiCopyConstBorder_8u_C4IR_L_as.s.o): relocation R_386_GOTOFF against preemptible symbol icv_ippJumpIndexForMergedLibs cannot be used when making a shared object
  C:/Android/sdk/ndk-bundle/toolchains/x86-4.9/prebuilt/windows-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/bin\ld: error: C:/Android/OpenCV-android-sdk/sdk/native/3rdparty/libs/x86/libippicv.a(jmp_icvippiConvert_32s16u_C1RSfs_as.s.o): relocation R_386_GOTOFF against preemptible symbol icv_ippJumpIndexForMergedLibs cannot be used when making a shared object
  C:/Android/sdk/ndk-bundle/toolchains/x86-4.9/prebuilt/windows-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/bin\ld: error: C:/Android/OpenCV-android-sdk/sdk/native/3rdparty/libs/x86/libippicv.a(jmp_icvippiNormRel_L1_32f_C1R_as.s.o): relocation R_386_GOTOFF against preemptible symbol icv_ippJumpIndexForMergedLibs cannot be used when making a shared object
  C:/Android/sdk/ndk-bundle/toolchains/x86-4.9/prebuilt/windows-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/bin\ld: error: C:/Android/OpenCV-android-sdk/sdk/native/3rdparty/libs/x86/libippicv.a(jmp_icvippiFilterBilateralBorderInit_L_as.s.o): relocation R_386_GOTOFF against preemptible symbol icv_ippJumpIndexForMergedLibs cannot be used when making a shared object
  C:/Android/sdk/ndk-bundle/toolchains/x86-4.9/prebuilt/windows-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/bin\ld: error: C:/Android/OpenCV-android-sdk/sdk/native/3rdparty/libs/x86/libippicv.a(jmp_icvippiScaleC_32f8u_C1R_as.s.o): relocation R_386_GOTOFF against preemptible symbol …
Run Code Online (Sandbox Code Playgroud)

opencv android-ndk android-studio opencv4android android-studio-3.0

5
推荐指数
1
解决办法
475
查看次数

如何将OpenCV 4.0集成到纯C ++ Android NDK项目中?

我整合的必要步骤是什么,

最新版本的OpenCV

进入纯C ++(无Java代码)Android NDK项目,例如Android NDK Google教程:

无尽的隧道

android集成的官方文档参考很多旧版本:OpenCV-2.4和文件夹结构不再相同。

我在Linux上使用Android Studio。

非常感谢所有帮助。

c++ android opencv android-ndk

5
推荐指数
1
解决办法
993
查看次数