我尝试构建时,Oculus Mobile SDK示例项目错​​误:compileReleaseNdk:

时间:2016-08-10 13:57:30

标签: android android-studio android-ndk oculus gear-vr

当我尝试构建oculus mobile sdk的示例项目时,我遇到了一些错误。

错误:FAILURE:构建因异常而失败。

  • 其中: 构建文件'〜/ oculus_sdk / ovr_sdk_mobile_1.0.0.1 / VrSamples / Native / CinemaSDK / Projects / Android / build.gradle'行:28

  • 出了什么问题: 配置项目时出现问题':VrSamples:Native:CinemaSDK:Projects:Android'。

      

    无法获取未知属性' compileReleaseNdk' for project':VrSamples:Native:CinemaSDK:Projects:Android'类型为org.gradle.api.Project。

  • 尝试: 使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。

有人可以解决这个问题吗?

我的开发环境如下。

  • Android studio 2.2
  • Android NDK:android-ndk-r12b
  • Oculus Mobile SDK:1.0.0.1
  • OSX 10.11.6

调试消息中提到的gradle文件内容就像这样...

UIViewController

1 个答案:

答案 0 :(得分:0)

我已经在类似的问题上找到了一个很好的答案: execution failed for task ':app:compileDebugNdk' failed to run this command ndk-build.cmd

  

Error:Execution failed for task ':app:compileDebugNdk'.

     

表示gradle android插件正在尝试调用ndk-build   本身编译你的来源。你应该得到更多的细节   日志窗口中的错误代码。

     

无论如何,目前它使用自动生成的Makefile和   忽略你的,因为你需要整合ffmpeg而无法工作。

     

要解决此问题,您应该禁用插件的自动ndk   集成并使其使用标准的 libs 位置来获取您的   .so文件:

sourceSets.main {
    jniLibs.srcDir 'src/main/libs'
    jni.srcDirs = [] //disable automatic ndk-build call
}
     

从那里你可以自己打电话给 ndk-build ,或者让gradle调用它   为你:

import org.apache.tools.ant.taskdefs.condition.Os

// call regular ndk-build(.cmd) script from app directory
task ndkBuild(type: Exec) {
    if (Os.isFamily(Os.FAMILY_WINDOWS)) {
        commandLine 'ndk-build.cmd', '-C', file('src/main').absolutePath
    } else {
        commandLine 'ndk-build', '-C', file('src/main').absolutePath
    }
}

tasks.withType(JavaCompile) {
    compileTask -> compileTask.dependsOn ndkBuild
}
     

有关所有这些原因的详细信息,您可以查看此gist和   我的blog post

您需要做的就是通过在build.gradle文件中添加以下属性来禁用ndk-build

sourceSets.main {
        jniLibs.srcDir 'src/main/libs'
        jni.srcDirs = [] //disable automatic ndk-build call
    }

或删除第二行:jni.srcDirs = [...]

希望它会有所帮助