我尝试将 OpenCV 集成到 GearVR 项目中,我的最终目标是使用 OpenCV 样本的“棕褐色”过滤器通过 GearVR 在“棕褐色”过滤器(以及后来的其他过滤器)中查看世界。
这是我的过程和我的问题:首先我按照“ https://developer.oculus.com/documentation/mobilesdk/latest/concepts/mobile-new-apps-intro/ ”创建一个从 VrTemplate 复制的新项目(示例包含在 oculus 移动 SDK 中)。通过 build.cmd 运行它,在屏幕上创建 2 个为 GearVR 准备的扭曲绿色“圆圈”。
然后我打开Android Studio和“file-new-import project”并在新创建的项目中选择build.gradle文件(C:\Dev1\ovr_sdk_mobile_1.0.3\VrSamples\Native\VrAndOpenCVApp\Projects\Android\build.gradle) , VrAndOpenCVApp 是我之前创建的项目的名称。
通过 Android Studio 运行它也可以。
现在我想要 OpenCV 3.1.0 并按照本教程进行操作:“ https://chmod600blog.wordpress.com/2016/02/22/how-to-add-opencv-3-1-0-to-android-studio/“。我已经通过首先创建一个新应用程序对其进行了测试,该过程很简单并且可以工作。但是,现在我必须将它放入GearVR-ready模板应用程序中。在“文件-新建-导入模块”之后,“文件-> Project Structure”选择左侧的“Android”模块(“Android”必须是模板给出的标准名称,而不是创建自己的新应用时的“app”)。“依赖项”选项卡->“+”-> “Module Dependency”并选择我刚刚添加的 openCVLibrary310。这里出现错误“Error:Configuration with name 'default' not found.”,这将一直伴随着我直到结束。教程的第 12 步,我打开“C: \Dev1\ovr_sdk_mobile_1.0.3\VrSamples\Native\VrAndOpenCVApp\Projects\Android\openCVLibrary310\build.gradle”和“C:\Dev1\ovr_sdk_mobile_1.0.3\VrSamples\Native\VrAndOpenCVApp\Projects\Android\build.gradle" ,我在其中调整 compileSdkVersion、buildToolsVersion、defaultConfig/minSdkVersion 和 defaultConfig/targetSdkVersion 的值
android {
compileSdkVersion 19
buildToolsVersion "23.0.1"
defaultConfig {
minSdkVersion 19
targetSdkVersion 19
}
.
同步 Gradle 文件后,出现错误“错误:找不到名称为‘默认’的配置。” 遗迹。我不知道如何获取有关此错误的更多信息,谷歌搜索给了我一些建议,但我不确定我是否错误地应用了它们,或者它们是否不适用于我的问题。
我试过了:
- 更改构建工具、目标和编译的 sdk 版本(oculus mobile sdk 附带的 gradle 包装器使用的 gradle 版本似乎是 1.5.0)
- 按照教程的建议将它链接到一个新的应用程序,这很有效并且很容易。项目结构看起来不同。我有屏幕截图,但不能发布它们,因为我在这里的帐户是新的。
模板项目文件夹中openCVLibrary310的build.gradle
apply plugin: 'com.android.library'
android {
compileSdkVersion 19
buildToolsVersion "23.0.1"
defaultConfig {
minSdkVersion 19
targetSdkVersion 19
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
模板应用程序的 build.gradle(忽略构建工具,我只是在测试不同的工具)
apply plugin: 'com.android.application'
apply from: "${rootProject.projectDir}/VrApp.gradle"
dependencies {
compile project(':VrAppFramework:Projects:AndroidPrebuilt')
compile project(':VrAppSupport:SystemUtils:Projects:AndroidPrebuilt')
compile project(':VrAppSupport:VrGUI:Projects:AndroidPrebuilt')
compile project(':VrAppSupport:VrLocale:Projects:AndroidPrebuilt')
compile project(':VrAppSupport:VrSound:Projects:AndroidPrebuilt')
//compile project(':VrSamples:Native:VrAndOpenCVApp:Projects:Android:openCVLibrary310') //same error
compile project(':openCVLibrary310')
}
android {
project.archivesBaseName = "VrAndOpenCVApp"
defaultConfig {
applicationId "com.daprlab.VrAndOpenCVApp"
}
compileSdkVersion 23
buildToolsVersion '24.0.0'
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['../../java']
jniLibs.srcDir 'libs'
res.srcDirs = ['../../res']
assets.srcDirs = ['../../assets']
}
}
}
模板项目的settings.gradle
rootProject.projectDir = new File(settingsDir, '../../../../..')
rootProject.name = "VrAndOpenCVApp"
include ':', \
'VrApi:Projects:AndroidPrebuilt', \
'VrAppFramework:Projects:AndroidPrebuilt', \
'VrAppSupport:VrLocale:Projects:AndroidPrebuilt', \
'VrAppSupport:VrSound:Projects:AndroidPrebuilt', \
'VrSamples:Native:VrAndOpenCVApp:Projects:Android', \
'VrAppSupport:SystemUtils:Projects:AndroidPrebuilt', \
'VrAppSupport:VrGUI:Projects:AndroidPrebuilt'
include ':openCVLibrary310'
settings.gradle 在顶层
rootProject.projectDir = new File(settingsDir, '.')
rootProject.name = "OculusRoot"
include ':VrApi:Projects:AndroidPrebuilt', \
':VrAppFramework:Projects:AndroidPrebuilt', \
':VrAppSupport:SystemUtils:Projects:AndroidPrebuilt', \
':VrAppSupport:VrLocale:Projects:AndroidPrebuilt', \
':VrAppSupport:VrSound:Projects:AndroidPrebuilt', \
':VrAppSupport:VrGUI:Projects:AndroidPrebuilt'
include ':LibOVRKernel:Projects:Android', \
':VrAppFramework:Projects:Android', \
':VrCapture:Projects:Android', \
':VrApi:Impl:Projects:Android', \
':VrApi:Loader:Projects:Android', \
':VrAppSupport:SystemUtils:Projects:Android', \
':VrAppSupport:VrGUI:Projects:Android', \
':VrAppSupport:VrLocale:Projects:Android', \
':VrAppSupport:VrModel:Projects:Android', \
':VrAppSupport:VrSound:Projects:Android'
include ':openCVLibrary310'