为 bazel 设置 targetSdkVersion 和 compileSdkVersion,android tensorflow
Setting targetSdkVersion and compileSdkVersion for bazel, android tensorflow
我需要有关如何为 bazel 分别设置目标和编译 Sdk 版本的帮助。
我想 运行 遵循 this 教程 phone 上的 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)
我在 phone 安装 apk 时遇到解析错误:
adb install -r bazel-bin/tensorflow/examples/android/tensorflow_demo.apk
我启用了 usb 调试和第 3 方 apk 安装。 phone 使用 Android 4.4.4,所以我更改了 WORKSPACE 配置以匹配它(工具和 API 由 SDK 管理器正确安装)为:
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'.
关注 answer, I should build for compile API version > 21 but at the same time target API version 19. It can be easily set for gradle. However I have not found any clue how to do that for bazel。任何建议表示赞赏!
如果您要针对较低的 Android API 级别,您要编辑的文件实际上是 tensorflow/examples/android/AndroidManifest.xml。将 WORKSPACE 文件设置保留在您通过 sdk 安装的最高 API 级别(APIs 可以使用 $ANDROID_HOME/tools/android 安装)。
您可以在 AndroidManifest.xml 中将最低 API 级别降低到 19,但请注意,您将在 phone 运行 演示中遇到运行时错误,除非您更换与 camera2 api(添加了 API 级别 21)的演示代码与类似的 android.hardware.camera 代码。
我需要有关如何为 bazel 分别设置目标和编译 Sdk 版本的帮助。
我想 运行 遵循 this 教程 phone 上的 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)
我在 phone 安装 apk 时遇到解析错误:
adb install -r bazel-bin/tensorflow/examples/android/tensorflow_demo.apk
我启用了 usb 调试和第 3 方 apk 安装。 phone 使用 Android 4.4.4,所以我更改了 WORKSPACE 配置以匹配它(工具和 API 由 SDK 管理器正确安装)为:
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'.
关注
如果您要针对较低的 Android API 级别,您要编辑的文件实际上是 tensorflow/examples/android/AndroidManifest.xml。将 WORKSPACE 文件设置保留在您通过 sdk 安装的最高 API 级别(APIs 可以使用 $ANDROID_HOME/tools/android 安装)。
您可以在 AndroidManifest.xml 中将最低 API 级别降低到 19,但请注意,您将在 phone 运行 演示中遇到运行时错误,除非您更换与 camera2 api(添加了 API 级别 21)的演示代码与类似的 android.hardware.camera 代码。