如何将OpenCV SDK打包进Godot Android插件的AAR文件?
为Godot开发带OpenCV功能的Android插件时,AAR打包不包含OpenCV的问题
我要给Godot引擎开发一个集成OpenCV功能的Android插件,已经完成OpenCV到Android项目的集成,并且在插件的build.gradle中添加了implementation(project(":openCV")),但执行./gradlew assemble导出Android Archive(AAR)文件时,OpenCV SDK并未被打包进最终的AAR里。
我尝试了以下多种修改build.gradle的方案,均未解决问题:
- 第一次尝试:
packagingOptions { resources.pickFirsts.add("opencv_folder/**") }
- 第二次尝试:
packagingOptions { resources.pickFirsts.add("**/*") }
- 第三次尝试:
packagingOptions { jniLibs.pickFirsts.add("**/*.so") }
- 第四次尝试:
sourceSets { main { jniLibs.srcDirs("path_to_opencv_folder") } }
- 第五次尝试:
packagingOptions { jniLibs.pickFirsts.add("**/*.so") }
- 第六次尝试:
packagingOptions { jniLibs.pickFirsts.add("lib/**/*.so") }
- 第七次尝试:
packagingOptions { jniLibs.pickFirsts.add("**/opencv_module_folder/**/*.so") }
- 第八次尝试:
sourceSets { named("main") { java.srcDirs(file("../opencv_module_folder/src/main/java")) } }
- 第九次尝试:
sourceSets { getByName("main").java.srcDirs = files("../opencv_module_folder/src/main/java") }
- 第十次尝试:
packagingOptions { // Include all necessary files from OpenCV from(project(":openCV")) { include("**/*.so") } }
- 第十一次尝试:
tasks { val createAar by tasks.creating(Jar::class) { archiveBaseName.set("YourPluginName") archiveExtension.set("aar") destinationDirectory.set(file("path/to/output/folder")) from android.sourceSets.main.java.classes from android.sourceSets.main.resources from('openCV/build/outputs/aar') { // include OpenCV AAR file include '*.aar' } } }
另外我还有个疑问:打包插件时,到底需要从OpenCV中引入哪些内容?是只需要各Android架构对应的.so文件,还是要把整个OpenCV SDK全部打包进去?
内容的提问来源于stack exchange,提问作者BraveEvidence
相关产品推荐
相关产品推荐

