如何在android项目中禁用调试消息?

时间:2018-01-17 13:20:20

标签: android

我们有一个大项目无法删除大量调试消息,项目处于发布阶段。我们要禁用项目中的所有调试消息。调试消息格式为

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.d("Gajanand", "onCreate: just check");
}

我试过

Android:debuggable="false"

但它不起作用 并且还尝试更改构建变体以发布,但是获得了许多无法构建项目的错误 请任何帮助

3 个答案:

答案 0 :(得分:1)

您可以使用以下proguard规则来忽略发行版中的所有调试和详细日志:

# ignore all Debug and Verbose Logs in a release
-assumenosideeffects class android.util.Log {
    public static *** d(...);
    public static *** v(...);
}

所以你没有"禁用"手动完成所有日志 - 它们只是混淆了。

要应用此proguard规则,您必须通过修改gradle文件来使用proguard的优化功能:

buildTypes {
    release {
        shrinkResources false
        minifyEnabled true
        zipAlignEnabled true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),
                'proguard-rules.pro'
        signingConfig signingConfigs.config
        proguardFile '/<your-custom-file>/app/proguard-rules.pro'
        debuggable false
    }
}

另请参阅proguard手册: https://www.guardsquare.com/en/proguard/manual/usage

答案 1 :(得分:1)

对于我的项目,我能够通过以下方式摆脱调试消息。

  1. 首先,我访问了应该在build.gradle文件附近的 proguard-rules.pro 文件。在那个文件中我添加了:

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

  2. 然后我去了build.gradle文件并添加了:

    buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } }

  3. 有关详细信息,请转到here

答案 2 :(得分:0)

你可以用艰难的方式并使用remplace  “Ctr + shift + r”  并重新考虑所有 “日志”。通过“//” 将所有日志请求置于评论中。