2011-07-20 8 views
3

開発中にログを呼び出すためのラッパークラスがあります。これにより、いつでもすべてのログオンをオンまたはオフにすることができます(さらにいくつかの面白い機能もあります)。以前は、特定のProGuardの最適化を使用してリリース中にこのクラスを削除し、クラスの静的メソッドへの呼び出しも削除しました(ログ文字列は残されません)。ProGuard最適化を使用せずにロギングコールを削除する方法はありますか?

残念ながらthis、私はProGuardのの最適化機能を無効にする必要があるため。私は簡単にロギングをオフにすることができますが、私のログ文字列はすべて結果のapkにまだ表示されています。何かが欠落していない限り、ProGuardでそれらを削除する方法はありません。

Eclipse GUIでリリースパッケージをビルドする際にこれらの文字列を削除する方法はありますか? (ANTではない)

答えて

0

文字列リテラルはどこにあるのか分かりませんが、ifdefデバッグ文をシミュレートするには、何かをするでしょうsimilar to this影響を受けた内部クラス/メソッド/ varのすべてをラップすることができれば些細かもしれませんそのようなステートメントであなたのデバッグクラスの。

明らかに、コンパイラは、ブロック内で見つかったものを多かれ少なかれデッドコードとして削除しているので、読んだことはありません。

+0

文字列は実際にロギングメソッドを呼び出しています: 'Logger.print(ここで何かをしています);'残念なことに 'Logger'クラスの中でロギングを無効にすると、プロジェクト全体に文字列が残ってしまいます。 (それはProGuardの方法についての素晴らしいことでした - それは実際にすべての呼び出しをも削除しました) – wirbly

+0

@wirblyので、基本的に多くの{もし私が考えることができるサンガードProGuard – Idistic

関連する問題