错误:包com.oculus.vrappframework不存在。

3
我正在尝试使用Oculus Mobile SDK V1.0.4,并按照Android Studio Basics的说明进行操作。
我已导入VrCubeWorld_Frameworkbuild.gradle文件,当切换到Project视图时,所有依赖项都以粗体显示,包括VrAppFramework
但是,在构建时我遇到了问题。我首先遇到的错误是:
error: package com.oculus.vrappframework does not exist

vrcubeworld\MainActivity.java中。

看起来很明显正在发生什么,它不知道框架中的活动,但我该如何建立这种连接?我需要将其添加为外部库/项目或其他吗?既然已经加粗,我认为这个问题应该已经解决了。

参考:build.gradle如下:

apply plugin: 'com.android.application'
apply from: "${rootProject.projectDir}/VrApp.gradle"

dependencies {
  compile project(':VrAppFramework:Projects:AndroidPrebuilt')
  compile project(':VrAppSupport:VrGUI:Projects:AndroidPrebuilt')
  compile project(':VrAppSupport:VrLocale:Projects:AndroidPrebuilt')
  compile project(':VrAppSupport:VrSound:Projects:AndroidPrebuilt')
}

android {
  project.archivesBaseName = "vrcubeworldfw"

  defaultConfig {
    applicationId "com.oculus.vrcubeworldfw"
  }

  compileSdkVersion 19
  buildToolsVersion '23.0.1'

  buildTypes {
    debug {
      jniDebuggable true
    }
  }

  sourceSets {
    main {
      manifest.srcFile 'AndroidManifest.xml'
      java.srcDirs = ['../../java']
      jniLibs.srcDir 'libs'
      res.srcDirs = ['../../res']
      assets.srcDirs = ['../../assets']
    }
  }
}

请问您能否展示一下您的 build.gradle 文件? - Oleg Bogdanov
1个回答

2
这就是错误的确切原因Oculus论坛。然而,在一些挖掘之后,它从任务名称中获取构建类型。

不要调用:

gradle build

调用:

gradle assembleDebug

针对Android Studio进行编辑:

我正在处理一个非常规的Oculus VR项目,所以我的一些更改可能不适用。但是,我发现Android Studio的问题在于它将完整的任务路径传递给gradle进行构建。在build.gradle文件中,它检查整个任务名称是否为“assembleDebug”

build.gradle中相关源代码:

  if ( project.file("build.gradle").exists() ) {
    project.gradle.startParameter.taskNames.each { taskName -> 
        if ( taskName == "assembleDebug" || taskName == "assembleRelease" || taskName == "clean" ) {
          if ( project.hasProperty( "buildType" ) ) {
            //throw new GradleException( "cannot configure multiple build tasks" )
          }
          project.ext.buildType = taskName - "assemble"
       }
    }
  }

将其更改为检查任务是否包含发布或调试,这对我很有帮助:

  if ( project.file("build.gradle").exists() ) {
    project.gradle.startParameter.taskNames.each { taskName -> 
        if (taskName.contains( "Debug" ) ) {
          project.ext.buildType = "Debug";
        } else if( taskName.contains( "Release" ) ) {
          project.ext.buildType = "Release";
        }    
    }
  }

谢谢,我可以使用命令行构建它。有没有办法让它在Android Studio中工作?在构建和Gradle同步之后,IDE仍然无法识别com.oculus.vrappframework.VrActivity。 - Curyous
我在答案中添加了更多信息,如果您遇到其他问题,请告诉我更多关于您特定问题的细节,因为我没有使用原始的Oculus VR,所以我的问题可能与您的不同。 - texel
天啊!太神奇了!它起作用了!尽管修复很简单。我非常感激,因为我被难住了。@texel 我可以通过从亚马逊买一本书之类的方式来报答你吗? - Curyous
别担心,如果你在达拉斯的话,就找我吧。 - texel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接