我正在尝试创建自己的使用 TensorFlow 的 Android 应用程序。我之前已经构建了 TensorFlow Android 示例,但该 Android 项目嵌入在 TensorFlow bazel 项目中,我想将我的项目放在文件系统其他地方的自己的位置。因此,我开始使用 bazel 构建我的 Android 应用程序并以这种方式整合 TensorFlow。
我首先查看有关外部依赖项的 bazel 文档。它提到运行bazel run //src/tools/generate_workspace
以自动生成 WORKSPACE 和 BUILD 文件以包含所有依赖 bazel 项目的所有依赖项。所以我运行了这个:
$ bazel run //src/tools/generate_workspace -- \
> --bazel_project=/Users/me/Dev/myAndroidProject \
> --bazel_project=/Users/me/Dev/tensorflow/tensorflow
我得到以下输出,其中包含大量关于在 tensorflow 中跳过传递依赖项的警告:
INFO: Running command line: bazel-bin/src/tools/generate_workspace/generate_workspace '--bazel_project=/Users/me/Dev/tensorflow/tensorflow/'
WARNING: Cannot fetch transitive dependencies for new_git_repository rule //external:accessibility-developer-tools yet, skipping
WARNING: Cannot fetch transitive dependencies for android_ndk_repository rule //external:androidndk yet, skipping
WARNING: Cannot fetch transitive dependencies for android_sdk_repository rule //external:androidsdk yet, skipping
WARNING: Cannot fetch transitive dependencies for new_git_repository rule //external:async yet, skipping
WARNING: Cannot fetch transitive dependencies for new_git_repository rule //external:chai yet, skipping
WARNING: Cannot fetch transitive dependencies for new_git_repository rule //external:d3 yet, skipping
WARNING: Cannot fetch transitive dependencies for new_git_repository rule //external:dagre yet, skipping
WARNING: Cannot fetch transitive dependencies for new_http_archive rule //external:eigen_archive yet, skipping
WARNING: Cannot fetch transitive dependencies for new_git_repository rule //external:es6-promise yet, skipping
WARNING: Cannot fetch transitive dependencies for new_git_repository rule //external:font-roboto yet, skipping
WARNING: Cannot fetch transitive dependencies for git_repository rule //external:gemmlowp yet, skipping
WARNING: Cannot fetch transitive dependencies for new_http_archive rule //external:gmock_archive yet, skipping
...
生成的 WORKSPACE 和 BUILD 文件基本上是空白的(每个文件中只有几个生成的注释)。这显然看起来不对,但我承认我不知道我在做什么将外部 bazel 项目作为依赖项合并到我的 Android bazel 项目中。
我做错了什么,是否有人设法将 TensorFlow 合并到一个单独的 Android 项目中,而不会将 Android 项目卡在 TensorFlow 项目中?