繁体   English   中英

在Android studio中使用gradle删除发行版上的代码行

[英]Remove code lines on release version using gradle in Android studio

我已经构建了一个带有Logger类的SDK JAR项目,该类通知系统日志。 例如:

Logger.log(“123行上的错误请检查”,Logger.SDK_DEBUG);

目前我可以使用的日志级别很少。

我会在发布版本中删除JAR构建过程之前我的代码中的Logger.SDK_DEBUG的所有日志消息。 是否可以使用Gradle做到这一点?

我写了一个gradle脚本来处理项目中所有Logger行的删除。 您需要在任何Gradle构建命令之前运行此命令。

task deleteJavaDebugLogs << {
    description("This function will delete all SDK DEBUG log level from the project, be careful with it!")
    //Put your project full path for exmple 'src/main/java/myproject' , the path must be with quotes
    FileTree  javaFiles = fileTree('[your_project_path]') {
        // if you have more files that are not .java include them also.
        include '**/*.java'
    }
    String regex = "Logger.log[^,]+[^L]+(.*)Logger.SDK_DEBUG[^;];"
    javaFiles.each { File javaFile ->
        println "Start replacing regex on $javaFile.name"
        String content = javaFile.getText()
        content = content.replaceAll(regex, "")
        javaFile.setText(content)
    }
}

祝好运! :)

我还没有对它进行测试,但是从代码混淆器的定义来看,它应该为你做到这一点。 因为它应该找到所有无法访问的代码并将其删除。 如果Logger.SDK_DEBUG是最终的,他应该知道它无法访问吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM