Flutter:ios/native_add.podspec文件不存在



我想用flutter运行OpenCV。首先,我尝试将FFI库绑定到本机代码。

Flutter Dev说";在iOS上,你需要告诉Xcode静态链接文件:

在Xcode中,打开Runner.xcworkspace。将C/C++/Objective-C/Swift源文件添加到Xcode项目";

但我没有一个名为"Runner.xcworkspace"的文件;

我的XCode文件夹

我的AndroidStudio文件夹

在Flutter中运行opencv或c++代码非常困难。我已经做了三天了,没有任何改进。

如果您遵循了关于使用dart:ffin绑定到本机代码的flatter.dev指南,那是因为您创建了一个插件模板,因此iOS文件夹只包含插件特定的文件。要查找您要查找的iOS文件夹,请打开;示例";文件夹,也是在您制作项目并打开其中的iOS文件夹时创建的。

对于使用flutter和使用ffi的本地代码运行OpenCV,您可以这样做:

iOS:在Podfile中添加下一行到目标

pod 'OpenCV', '~> 4.3'

在生成设置中->库搜索路径添加递归路径

"$(SRCROOT)/Pods/OpenCV"

对于调试运行,您可以将opencv.framework添加到您的项目目录中

Android:对于Android,您有两种方法

  1. native:像谷歌上的大多数教程一样,下载Android SDK(.java扩展(
  2. c编译:文件夹android/app/build.gradle添加下一部分
android {
...
defaultConfig {
...
externalNativeBuild {
cmake {
// Enabling exceptions, RTTI
// And setting C++ standard version
cppFlags '-frtti -fexceptions -std=c++11'

// Shared runtime for shared libraries
arguments "-DANDROID_STL=c++_shared"
}
}
...
}
...
//external c++ plugin
externalNativeBuild{
cmake{
path "<pathtoyour>/CMakeLists.txt"
}
}
...
}

文件CMakeList.txt

cmake_minimum_required(VERSION 3.4.1) 
set( OpenCV_DIR "<path>/OpenCV-android-sdk/sdk/native/jni" )
find_package( OpenCV REQUIRED )
message(STATUS "OpenCV libraries: ${OpenCV_LIBS}")
add_library( <youe binary> SHARED <path to your c++ or c file> )
target_link_libraries( <youe binary> ${OpenCV_LIBS} )

最新更新