使用 bazel 支持在 android 上构建 tensorflow 时出错
error while building tensorflow on android, using bazel support
正如下面 link 中提到的
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android#android-studio
"At this point you can add the tensorflow/examples/android directory as a new Android Studio project."
我所做的一切
- 使用 "git clone --recurse-submodules https://github.com/tensorflow/tensorflow.git"
克隆了 git 存储库
- 使用 "bazel build -c opt //tensorflow/examples/android:tensorflow_demo"
构建了一个 APK
- 在“/.../.../tensorflow-master/bazel-bin/tensorflow/examples/android”中找到了 APK
- 如上所述,我尝试添加“tensorflow/examples/android”
目录作为新 Android Studio 项目
- 上面link中提到的"look at build.gradle and make sure that the path to Bazel matches that of your system."我改成了"def bazelLocation = '/usr/bin/bazel'"
错误
我正在尝试从 Android Studio 构建 APK,但发现了这个错误
错误:任务“:buildExternalAssets”执行失败。
进程 'command '/usr/bin/bazel'' 以非零退出值 1
结束
Gradle 构建消息
正在执行任务:[:assembleDebug]
按需配置是一项孵化功能。
:preBuild 最新
:preDebugBuild 最新
:检查调试清单
:prepareDebugDependencies
:compileDebugAidl 最新
:compileDebugRenderscript 最新
:generateDebugBuildConfig 最新
:generateDebugResValues 最新
:generateDebugResources 最新
:mergeDebugResources 最新
:processDebugManifest 最新
:processDebugResources 最新
:generateDebugSources 最新
:incrementalDebugJavaCompilationSafeguard 最新
:java预编译调试
:compileDebugJavaWithJavac 最新
:compileDebugNdk 最新
:compileDebugSources 最新
:buildExternalAssets
无法在“/usr/local/java/jdk1.8.0_101/bin/java”找到 java。
失败
失败:构建失败,出现异常。
- 出了什么问题:
任务“:buildExternalAssets”执行失败。
进程 'command '/usr/bin/bazel'' 以非零退出值 1 结束
- 尝试:
运行 使用 --stacktrace 选项获取堆栈跟踪。 运行 使用 --info 或 --debug 选项以获得更多日志输出。
构建失败
总时间:11.433 秒
感谢@cricket_007 回复并澄清了我关于 jdk 安装的概念
解决上述问题
打开 "build.gradle" 在 [/.../.../.../tensorflow-master/tensorflow/examples/android/build.gradle], 检查
"def externalModelData = '../../../bazel-tensorflow-master/外部'"
验证 def externalModelData 是否指向正确的文件夹名称,最初它是 '../../../ bazel-tensorflow/外部'
我不得不将其更改为 bazel-tensorflow-master,这些是 bazel 生成的文件夹,在你从 [=56 编译 tensorflow 源代码后=] 在命令行上,使用 bazel、Android SDK 和 Android NDK 工具
还要确保您的 Jdk 安装是完美的。
正如下面 link 中提到的 https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android#android-studio
"At this point you can add the tensorflow/examples/android directory as a new Android Studio project."
我所做的一切
- 使用 "git clone --recurse-submodules https://github.com/tensorflow/tensorflow.git" 克隆了 git 存储库
- 使用 "bazel build -c opt //tensorflow/examples/android:tensorflow_demo" 构建了一个 APK
- 在“/.../.../tensorflow-master/bazel-bin/tensorflow/examples/android”中找到了 APK
- 如上所述,我尝试添加“tensorflow/examples/android” 目录作为新 Android Studio 项目
- 上面link中提到的"look at build.gradle and make sure that the path to Bazel matches that of your system."我改成了"def bazelLocation = '/usr/bin/bazel'"
错误
我正在尝试从 Android Studio 构建 APK,但发现了这个错误
错误:任务“:buildExternalAssets”执行失败。 进程 'command '/usr/bin/bazel'' 以非零退出值 1
结束Gradle 构建消息
正在执行任务:[:assembleDebug]
按需配置是一项孵化功能。
:preBuild 最新 :preDebugBuild 最新 :检查调试清单 :prepareDebugDependencies :compileDebugAidl 最新 :compileDebugRenderscript 最新 :generateDebugBuildConfig 最新 :generateDebugResValues 最新 :generateDebugResources 最新 :mergeDebugResources 最新 :processDebugManifest 最新 :processDebugResources 最新 :generateDebugSources 最新 :incrementalDebugJavaCompilationSafeguard 最新 :java预编译调试 :compileDebugJavaWithJavac 最新 :compileDebugNdk 最新 :compileDebugSources 最新 :buildExternalAssets
无法在“/usr/local/java/jdk1.8.0_101/bin/java”找到 java。
失败
失败:构建失败,出现异常。
- 出了什么问题:
任务“:buildExternalAssets”执行失败。
进程 'command '/usr/bin/bazel'' 以非零退出值 1 结束
- 尝试:
运行 使用 --stacktrace 选项获取堆栈跟踪。 运行 使用 --info 或 --debug 选项以获得更多日志输出。
构建失败
总时间:11.433 秒
感谢@cricket_007 回复并澄清了我关于 jdk 安装的概念
解决上述问题
打开 "build.gradle" 在 [/.../.../.../tensorflow-master/tensorflow/examples/android/build.gradle], 检查
"def externalModelData = '../../../bazel-tensorflow-master/外部'"
验证 def externalModelData 是否指向正确的文件夹名称,最初它是 '../../../ bazel-tensorflow/外部'
我不得不将其更改为 bazel-tensorflow-master,这些是 bazel 生成的文件夹,在你从 [=56 编译 tensorflow 源代码后=] 在命令行上,使用 bazel、Android SDK 和 Android NDK 工具
还要确保您的 Jdk 安装是完美的。