繁体   English   中英

为 bazel、android tensorflow 设置 targetSdkVersion 和 compileSdkVersion

[英]Setting targetSdkVersion and compileSdkVersion for bazel, android tensorflow

我需要有关如何为 bazel 单独设置目标和编译 Sdk 版本的帮助。

我想按照教程在手机上运行 tensorflow。 为bazel编辑WORKSPACE后如下:

android_sdk_repository(
    name = "androidsdk",
    api_level = 24,
    build_tools_version = "24.0.1",
    path = "/home/Android/Sdk",
)

android_ndk_repository(
    name="androidndk",
    path="/home/Android/Sdk/ndk-bundle",
    api_level=21)

安装 apk 后,我在手机上收到 PARSE ERROR:

adb install -r bazel-bin/tensorflow/examples/android/tensorflow_demo.apk

我启用了 USB 调试和 3rd 方 apk 安装。 手机使用 Android 4.4.4,所以我更改了 WORKSPACE 配置以匹配它(SDK 管理器正确安装的工具和 API)为:

android_sdk_repository(
    name = "androidsdk",
    api_level = 19,
    build_tools_version = "19.1.0",
    path = "/home/Android/Sdk",
)

android_ndk_repository(
    name="androidndk",
    path="/home/Android/Sdk/ndk-bundle",
    api_level=21)

在构建为:

bazel build //tensorflow/examples/android:tensorflow_demo

我最终遇到了一些这种类型的错误:

Error at 5 : /tmp/android_resources_tmp7060220119759636814/merged_resources/values-v21/values.xml:5: error: Error retrieving parent for item: No resource found that matches the given name 'android:Theme.Material.Light'.

按照这个答案,我应该构建编译 API 版本 > 21 但同时目标 API 版本 19。它可以很容易地为 gradle 设置。 但是,我还没有找到任何线索如何为bazel做到这一点 任何建议表示赞赏!

如果你想针对较低的 Android API 级别,你要编辑的文件实际上是 tensorflow/examples/android/AndroidManifest.xml。 将 WORKSPACE 文件设置保留在您通过 sdk 安装的最高 API 级别(API 可以使用 $ANDROID_HOME/tools/android 安装)。

您可以在 AndroidManifest.xml 中将最小 API 级别降低到 19,但请注意,除非您将与 camera2 api(随 API 级别 21 添加的)接口的演示代码替换为类似的 android.hardware.camera 代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM