- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
今天我将我的 Android Studio NDK 更新到最新版本 18.0.5002713
。安装过程成功后,我尝试重新运行我的应用程序,但未能成功。不断出现的错误如下:org.gradle.api.ProjectConfigurationException: A problem occurred configuring project ':app'.
过去,我在 NDK 更新后运行我的应用程序时遇到了问题,但能够通过将 arguments '-DANDROID_STL=gnuSTL_static'
添加到 externalNativeBuild
来解决这些问题app.gradle 文件中的配置。
原始问题:(OpenCV - undefined reference to 'cv::CascadeClassifier::detectMultiScale() after NDK update)
通过添加这行代码,我设法在所有 NDK r17c 版本的其余部分避免了 NDK 出现任何类型的问题。
不幸的是,在版本 r18 中,对 GNUSTL 的支持与 gabi++ 和 STLport 一起被删除了。
查看 NDK 修订历史:https://developer.android.com/ndk/downloads/revision_history
删除现在已弃用的代码行会产生最初导致上述问题的错误。现在的问题是什么是 arguments '-DANDROID_STL=gnuSTL_static'
的最新等价物?
编辑:使用 '-DANDROID_STL=c++_static'
导致旧错误
提前谢谢你。
最佳答案
正如@Michael 已经建议的,您可以使用 libc++ 重建 OpenCV。
这样做:
cd $OPENCV_SRC
mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_DIR/ndk-bundle/build/cmake/android.toolchain.cmake -DANDROID_ABI="arm64-v8a" -DANDROID_STL=c++_static -DCMAKE_BUILD_TYPE=Release -DANDROID_NATIVE_API_LEVEL=android-24 ..
make install
cd install #the sdk will be here...
注意:使用“opencv-3.4.1”+ ndk18 测试
@shizhen 编辑
在 macOS 上验证,应在 cmake
命令后添加 ..
以使以下错误消失。
CMake Error: The source directory "/opencv-3.4.1/build"does not appear to contain
CMakeLists.txt
.
更新如下:
cd $OPENCV_SRC
mkdir build
cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=$ANDROID_DIR/ndk-bundle/build/cmake/android.toolchain.cmake -DANDROID_ABI="arm64-v8a" -DANDROID_STL=c++_static -DCMAKE_BUILD_TYPE=Release -DANDROID_NATIVE_API_LEVEL=android-24
make install
cd install #the sdk will be here...
关于android - NDK - GNUSTL 从 NDK(修订版 r18)中删除后出现的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52410712/
今天我将我的 Android Studio NDK 更新到最新版本 18.0.5002713。安装过程成功后,我尝试重新运行我的应用程序,但未能成功。不断出现的错误如下:org.gradle.api.
我将一个 ADT 项目隐藏到 Android Studio。然而,我在构建这个项目时不断收到错误消息: 错误:(687) Android NDK:模块 MediaEncoder 依赖于未定义的模块:c
我正在尝试使用 clang 而不是 gcc 构建一个 android ndk 应用程序,因为我已经尝试过这个在 Android.mk NDK_TOOLCHAIN_VERSION := clang LO
我是一名优秀的程序员,十分优秀!