私はgreenDAOをアプリの1つのフレーバーに使用しています。それを使用しないフレーバーに依存性を追加することは避けたいです。greenDAOはアプリの1つのフレーバーのみです
私が抱えている問題は、apply plugin: 'org.greenrobot.greendao'
がgreenDAOを使用しないフレーバで失敗するビルドスクリプトの原因となる両方のフレーバに適用されていることです。
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao'
android {
...
productFlavors {
lite {
...
}
pro {
...
}
}
}
greendao {
schemaVersion 1
}
dependencies {
proCompile 'org.greenrobot:greendao:3.2.0'
}
どうすればこの問題を解決できますか?
EDIT:
具体的には、それはgreenDAOは@Entityでマークされたすべてのクラスを構築するように、彼らは別の味であり、この原因はクラスとしてビルドエラーフォルダ\build\generated\source\greendao\com\test\app\database
にそれらを入れてもすることはできません見えます(彼らは異なる風味で定義されているので、もちろんできませんでした)。
「ビルドスクリプトがgreenDAOを使用していない味のために失敗する」 - 失敗の本質は何ですか?私はgreenDAOを個人的に使用していませんが、処理するものが見つからない場合、通常Gradleプラグインはうまく機能しません。 – CommonsWare
@CommonsWareは発言をありがとう、私はより具体的に質問を更新しようとしました。 – WebMajstr
Ick。プラグイン自体のバグや制限のような感じです。私が考えることができる最も良いことは、すべてのgreenDAOのものをライブラリモジュールに分離してから、そのライブラリモジュールを関連するフレーバーのためだけにプルすることです。これをすべて1つのモジュールにまとめておく必要がある場合は、理論上、不要なファイルを削除するカスタムのGradleタスクを作成し、greenDAOプラグインがそのフレーバでそれらのファイルを生成するどのタスクでも自動的にそのタスクを実行するように調整できますs)あなたはgreenDAOを避けています。 – CommonsWare