2017-01-05 4 views
2

ターゲットを設定し、bazel用にSdkのバージョンを個別にコンパイルする方法については助けが必要です。targetSdkVersionとcompelSdkVersionをbazel、android tensorflowに設定する

thisチュートリアルの後に電話でテンソルフローを実行します。次のようにbazelのためのワークスペースを編集した後:

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のインストールが有効になっています。私はいくつかで終わる

bazel build //tensorflow/examples/android:tensorflow_demo 

:として構築されると

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) 

:携帯電話は、Android 4.4.4は、私は、ワークスペースの設定はそれとして(適切SDKマネージャによってインストールツールとAPI)を一致するように変更使用していますそのタイプのエラー:this解答後

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'. 

は、私は> 21コンパイルAPIのバージョン用にビルドする必要がありますが、同時に、目標APIバージョン19でそれは簡単に卒業生のために設定することができますル。しかし、私はbazelのためにそれを行う方法を手がかりには見つかりませんでした。どんな提案も感謝しています!

答えて

1

低いAndroid APIレベルをターゲットにする場合、編集するファイルは実際はtensorflow/examples/android/AndroidManifest.xmlです。 WORKSPACEファイルの設定は、sdk(APIは$ ANDROID_HOME/tools/androidと一緒にインストールできます)でインストールした最高のAPIレベルにしておきます。

AndroidManifest.xmlで最小APIレベルを19に下げることはできますが、デモコードを実行している携帯電話でランタイムエラーが発生することに注意してください。ただし、camera2 api(APIで追加されたデモコードレベル21)と類似のandroid.hardware.cameraコードを使用します。

+0

ありがとうございます。 Android2自体を更新してからcamera2 APIに合うようにするのは合理的だと思われます。マニフェストファイルを調べた後の別の質問 - minSdkVersion 19とtargetSdkVersion 23がWORKSPACE sdk api_level 24とどのように関連していますか?その効果は実際にはapi 24にありますか? – eReS

+0

WORKSPACEのデフォルト値は任意です。私はその時点で自分のシステム上にあったものになりました。それらが> 23である限り、その例はうまくいくはずです。 権限を確認するコードでは、コンパイル時にレベル23が必要です。このコードは、デバイスのAPIレベルが23未満の場合、実行時に自動的にスキップされます。 –

関連する問題