2017-01-05 7 views
2

Мне нужна помощь в том, как установить целевое и скомпилировать версии Sdk отдельно для bazel.Настройка targetSdkVersion и compileSdkVersion для bazel, android tensorflow

Я хочу запустить tenorflow по телефону после this учебник. После редактирования 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 установки:

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

Я отладка USB и установка APK третьей стороны включены. В телефоне используется 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'. 

После this ответ, я должен построить для версии компиляции API> 21, но в то же время целевой API версии 19. Она может быть легко установлен на град ле. Однако я не нашел подсказки, как это сделать для bazel. Любые предложения приветствуются!

ответ

1

Если вы хотите настроить таргетинг на нижний уровень API Android, файл, который вы хотите редактировать, на самом деле является тензором/examples/android/AndroidManifest.xml. Оставьте параметры файла WORKSPACE на самом высоком уровне API, который вы установили через ваш sdk (API могут быть установлены с помощью $ ANDROID_HOME/tools/android).

Вы можете снизить минимальный уровень API до 19 в AndroidManifest.xml, но имейте в виду, что на вашем телефоне будет выполняться демонстрация ошибок, если вы не замените демонстрационный код, который взаимодействует с camera2 api (который был добавлен с API уровень 21) с аналогичным кодом android.hardware.camera.

+0

спасибо. Кажется, было бы разумно обновить сам Android, а затем подобрать camera2 api. Другой вопрос после просмотра файла манифеста - как minSdkVersion 19 и targetSdkVersion 23 соотносятся с WORKSPACE sdk api_level 24? Какое действие имеет тот апи-24, тогда практически? – eReS

+0

Значения по умолчанию в WORKSPACE произвольны - они только что оказались в моей системе в то время. Пока они составляют> = 23, пример должен строиться отлично. Уровень 23 требуется во время компиляции для некоторого кода, который проверяет разрешения. Этот код автоматически пропускается во время выполнения, если уровень API на устройстве равен <23. –