使用bazel支持

时间:2017-03-19 07:53:37

标签: android gradle tensorflow build.gradle bazel

如下面链接中所述 https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android#android-studio

"此时,您可以将tensorflow / examples / android目录添加为新的Android Studio项目。"

我所做的一切

  1. 克隆git repo使用" git clone --recurse-submodules https://github.com/tensorflow/tensorflow.git"
  2. 使用" bazel build -c opt // tensorflow / examples / android:tensorflow_demo"构建一个APK
  3. 在" /.../.../ tensorflow-master / bazel-bin / tensorflow / examples / android "
  4. 中找到了APK
  5. 如上所述,我尝试添加" tensorflow / examples / android " 目录作为新的Android Studio项目
  6. 如上面的链接所示"请查看 build.gradle ,并确保Bazel的路径与您系统的路径相匹配。"我将其更改为" def bazelLocation = ' / usr / bin / bazel' "
  7. 错误

    我正在尝试从Android Studio构建APK并发现此错误

    错误:任务':buildExternalAssets'执行失败。 处理'命令' / usr / bin / bazel''完成非零退出值1

    Gradle构建消息

    执行任务:[:assembleDebug]

    按需配置是一项孵化功能。

    :preBuild UP-TO-DATE :preDebugBuild UP-TO-DATE :checkDebugManifest :prepareDebugDependencies :compileDebugAidl UP-TO-DATE :compileDebugRenderscript UP-TO-DATE :generateDebugBuildConfig UP-TO-DATE :generateDebugResValues UP-TO-DATE :generateDebugResources UP-TO-DATE :mergeDebugResources UP-TO-DATE :processDebugManifest UP-TO-DATE :processDebugResources UP-TO-DATE :generateDebugSources UP-TO-DATE :incrementalDebugJavaCompilationSafeguard UP-TO-DATE :javaPreCompileDebug :compileDebugJavaWithJavac UP-TO-DATE :compileDebugNdk UP-TO-DATE :compileDebugSources UP-TO-DATE :buildExternalAssets

    无法在' /usr/local/java/jdk1.8.0_101/bin/java'找到java。

    FAILED

    失败:构建因异常而失败。

    • 出了什么问题:

    任务执行失败':buildExternalAssets'。

    处理'命令' / usr / bin / bazel''完成非零退出值1

    • 尝试:

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

    建立失败

    总时间:11.433秒

1 个答案:

答案 0 :(得分:1)

感谢@ cricket_007回复并清除了有关jdk安装的概念

解决上述问题

  1. 在[/.../.../.../tensorflow-master/tensorflow/examples/android/build.gradle]打开“build.gradle”,查看为了

    def externalModelData ='../../../bazel-tensorflow-master/external'"

  2. 确认 def externalModelData 指向正确的文件夹名称,最初是'../../../bazel-tensorflow /外部“
  3. 我必须将其更改为 bazel-tensorflow-master ,这些是bazel生成的文件夹,在您使用bazel,Android编译来自命令行的github的tensorflow源之后SDK和Android NDK工具

  4. 还要确保您的Jdk安装完美。