TensorFlow Android演示:无法使用Bazel构建,无法读取RELEASE.TXT

时间:2016-07-04 14:24:10

标签: android android-ndk tensorflow bazel

最近我一直在学习如何使用TensorFlow,并希望在我的计算机上设置Android演示,看看它们是如何工作的。我按照here提供的说明进行操作,唯一的区别是我通过Android Studio安装了Android SDK,并通过SDK Manager安装了Android NDK。直到$ bazel build //tensorflow/examples/android:tensorflow_demo,一切正常,但在那之后,我从终端得到了这个错误:

ERROR: no such package '@androidndk//': Could not read RELEASE.TXT in Android NDK: /home/me/.cache/bazel/_bazel_me/f3471be34d1e62bf21975aa777cedaa3/external/androidndk/ndk/RELEASE.TXT (No such file or directory).
ERROR: no such package '@androidndk//': Could not read RELEASE.TXT in Android NDK: /home/me/.cache/bazel/_bazel_me/f3471be34d1e62bf21975aa777cedaa3/external/androidndk/ndk/RELEASE.TXT (No such file or directory).

通过查看类似问题,我的理解是此错误是因为RELEASE.TXT文件未包含在最新版本的Android NDK中。 This issue建议降级到包含RELEASE.TXT文件的以前版本的NDK,并提供下载此类版本的链接。但是,我关注的链接(https://dl.google.com/android/ndk/android-ndk-r10e-linux-x86_64.bin)下载了.bin文件,这对我来说无法使用。那篇文章还建议在WORKSPACE文件中评论NDK条目,但我还没有尝试过,因为我不知道它是否会引起进一步的复杂化。

我尝试过的另一种方法是转到错误日志(/home/me/.cache/bazel/_bazel_me/f3471be34d1e62bf21975aa777cedaa3/external/androidndk/ndk)指示的路径并创建一个空白的RELEASE.TXT文件,这没有任何区别。 (我无法在我安装的NDK中创建一个,因为它在路径/home/me/android-studio/android-studio/plugins/android-ndk/lib处以.jar文件的形式存在,因此我能看到的唯一方法就是这条路径。)

目前看来,我走到了尽头。是否有其他方法可以在不降级或评论NDK条目的情况下解决此问题?如果没有,我该如何安装以前版本的Android NDK?

2 个答案:

答案 0 :(得分:3)

我还在TensorFlow的官方GitHub存储库中将此问题发布为问题#3175,并且已经解决了。我可以在该线程中找到解决问题所遵循的步骤的逐个播放。这有点令人费解,所以我认为可以解决这个问题的步骤如下:

  1. 如果你在git克隆TensorFlow存储库时没有使用--recursive选项,请使用它重新克隆它。
  2. 降级到Android NDK r11c(并确保相应地更新WORKSPACE文件)。可以在GitHub线程中找到Linux版本的链接。
  3. 检查Android SDK的版本和构建工具。如果它们与WORKSPACE文件中编写的默认版本不同,请确保更改它。
  4. 您可能会遇到尚未解决的TensorFlow问题。 (#3374)如果是,请运行./configure作为解决方法。
  5. 这应该允许Bazel构建成功进行。

答案 1 :(得分:0)

您是否在不使用Bazel的情况下使用其他方法编译TensorFlow for Android?它在TensorFlow Makefile

中描述