-1

重複の可能性:
公開する前にすべてのデバッグ ロギング呼び出しを削除します: これを行うツールはありますか?

概念を誤解しているのかもしれませんが、デバッグ ログ メッセージは未リリースのアプリにのみ表示されるはずではないですか?

コードの「Log.d(..)」によってダンプされたすべてのメッセージを削除することになっている「File」-「Export」でアプリをコンパイルしました。ただし、Eclipse を実行しているときに USB で接続されたこのバージョンを実行すると、LogCat にさまざまなデバッグ メッセージが表示されます。

私は今、少し心配しています - 私が思い出す限り、ProGuardはリリースビルドを作成するときに自動的に呼び出されるはずですが、アプリにデバッグコメントを残すようです(しかし、関数名が難読化されているため、それ以外の場合は機能するようです) Logcat も参照してください)。

4

3 に答える 3

0

問題の原因がわかったと思います - 私は持っていました

-assumenosideeffects class android.util.Log {
   public static *** d(...);
   public static *** i(...);
   public static *** v(...);
}

私のローカルproguard-project.txtに、しかし行があるにもかかわらず

proguard.config=${sdk.dir}\\tools\\proguard\\proguard-android-optimize.txt:proguard-project.txt

私の project.properties ファイルでは、何らかの理由で proguard-project.txt が使用されていないようです。ログ削除パラメーターを proguard-android-optimize.txt に追加しましたが、現在は機能しており、アプリをエクスポートするとログが削除されます。

于 2013-01-09T11:46:51.840 に答える
0

ログステートメントは削除されません!!! それらを手動で削除し、アプリを公開した場合に備えて更新として送信できます。

より良い方法は、Globals のようなクラスを作成し、それに isDevelopement というフラグを設定することです。

public class Globals
{
    static boolean isDevelopment = 1;

    public static void log(String tag, String message)
    {
      if(isDevelopment==1)
         Log.d(tag,message);
    }
}

そして、ログステートメントがあるすべての場所で、次のように呼び出します

Globals.log("TAG", "MESSAGE");

このように、公開するときは、isDevelopment を 0 に変更するだけで済みます。ログは消えます。作業中は、1 に変更するだけです。

お役に立てれば

于 2013-01-09T10:58:03.177 に答える