【问题标题】:Setting targetSdkVersion and compileSdkVersion for bazel, android tensorflow为 bazel、android tensorflow 设置 targetSdkVersion 和 compileSdkVersion
【发布时间】:2017-01-05 06:48:29
【问题描述】:

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

我想按照this 教程在手机上运行 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'.

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

【问题讨论】:

    标签: android tensorflow android-gradle-plugin bazel


    【解决方案1】:

    如果您想针对较低的 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 代码。

    【讨论】:

    • 谢谢。似乎更新Android本身然后匹配camera2 api是合理的。查看清单文件后的另一个问题 - minSdkVersion 19 和 targetSdkVersion 23 如何与 WORKSPACE sdk api_level 24 关联?那 api 24 到底有什么作用呢?
    • WORKSPACE 中的默认值是任意的——它们恰好是我当时系统上的值。只要它们> = 23,该示例就应该可以正常构建。某些检查权限的代码在编译时需要级别 23。如果设备上的 API 级别为
    猜你喜欢
    • 2016-03-01
    • 2022-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    相关资源
    最近更新 更多