2016/06/16

[android]ライブラリBuildConfig.DEBUGがtrueになってくれない

ライブラリを作っている。
デバッグビルドの時はログを出して、リリースビルドの時は出したくない。
できれば、リリースビルドの時にはコード自体削ってほしいのだけど、出したいところもあるので全部削りたいわけでもない。

 

とりあえず、自分でログ出力するclassを作って、BuildConfig.DEBUGをif文で見るようにした。
したのだが、ログが出ないのだ。
デバッガで止めても、falseになっている。
けれども、Android StudioでCtrl押しながらクリックしてBuildConfigに飛ぶと、trueになっているっぽい。

だいたい、falseのときは

public static final boolean DEBUG = false;

でわかりやすいのだけど、trueのときは

public static final boolean DEBUG = Boolean.parseBoolean("true");

になっている。
直接trueって書いてくれれば、もう少し安心できるのに。。。

 

ライブラリのBuildConfigは、強制でfalseになる、という話が多いので、たぶんそうなのだろう。
でも、Build Variantで変更できるので、なんかねぇ、納得しづらいねぇ。。。

 

こちらの方が、対処を書いてくださってる。
[Android] BuildConfig.DEBUGがtrueにならない: Java知識ゼロ人間の生活

これを見ると、アプリのdebug/releaseで切り分けられることになるんじゃないかしら。
つまり、「compile()」を使うと、Build Variantの設定は無視され、デフォルトの'release'が使われる、ということか。

それなら、まあまだ納得がいくな。

 

だったら、一番よいのは、関数はcompile()のままで、後ろのconfigurationをライブラリのBuild Variantによって設定する、とかなんだろうけど、うーん、よくわからん。

3 件のコメント:

  1. AndroidStudioのIDEにbuild variantsというタブが多分左下にありますので、そこでdebugを選ぶとtrueになりそう!

    返信削除
    返信
    1. うちだと、それで変わらないんですよ。。。
      BuildConfigのところは書き換わるんですが、実行時にはfalse扱いになるという。。。

      削除

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。