私はAndroidスタジオで、バーコードスキャナを備えた産業用デバイスを使用するAndroidアプリケーションを開発しています。 いくつかのモデル(異なる企業の異なるモデル)は特別なSDKを使用しています(API 23だけでなく、特別なSDKでコンパイルする必要があります)。SDKに依存するAndroidスタジオコード
私の問題は、他のデバイスに切り替えて他のSDK(たとえばAPI 23など)でコンパイルする必要があるということです。私はもはや動作しないコードをいくつか持っています。インポートは存在しません特定のデバイス用に使用するオブジェクトやメソッドもありません。
私のコードは次のようになります。
if(Build.MANUFACTURER.equals(COMPANY_NAME)){
// do some stuff that won't compile with an other sdk
}else if (Build.MANUFACTURER.equals(COMPANY_NAME)){
// do some other stuff that compile with a specific sdk too...
}else if (...){
...
}
それだけで特定のデバイス上で実行されますので、私は、コードを削除したり、論評に入れたくない(と私は戻ってくるしたくありません特定のSDK用にコンパイルするたびにコードのコメントを外してください)。
他のSDKのエラーを表示することなく、コードを保持しておく必要があります(また、必ずしもコメントに入れないでください)。
- compileSdkVersionは、私たちがこのような状況に応じてcompileSdkVersionを置くことができるproduct flavors
に設定することができないようです:
場合(私がこれまでに発見した何
条件){
compileSdkVersion 23
} else {
compileSdkVersion 'Datalogic:Datalogic SDK v1:23'
}
しかし、それはそれの後に実行されますので、条件は、製品の味からすることはできません。 "解決策"は、gradle.propertiesに条件を入れてhereと書かれていますが、手動でコンパイルするたびに変更する必要があり、特定のSDKバージョンでコンパイルされないコードを扱うことはできません。
私の質問 –
を編集するのは擬似コードだったのですが、面白そうですが、私が欲しいものではないか、あるいは誤解されているかもしれません。これでcompileSdkVersionを指定できますか? –
理論的には可能ですが、そうしてはいけません。従来のSDKでコンパイルするのは意味がありません。推奨されていないコードを使用しないようにコード内で確認することができます。 – rekire