Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android、Java中从生产中排除代码_Java_Android - Fatal编程技术网

在Android、Java中从生产中排除代码

在Android、Java中从生产中排除代码,java,android,Java,Android,我在我的Android应用程序中有一些用于调试的代码,但不想在生产中使用。在Android、Java中是否有办法排除生产版本中的某些代码?就像在C中使用define、ifdef、endif一样 我喜欢断言,它可以在Android应用程序的运行配置中启用,但该断言语句需要断言代码返回布尔值,所以这对我来说不起作用 谢谢 我发布这个答案是为了提供信息,这并不是一个建议,实际上使用断言的副作用来修改代码 话虽如此 boolean debug = false; assert debug

我在我的Android应用程序中有一些用于调试的代码,但不想在生产中使用。在Android、Java中是否有办法排除生产版本中的某些代码?就像在C中使用define、ifdef、endif一样

我喜欢断言,它可以在Android应用程序的运行配置中启用,但该断言语句需要断言代码返回布尔值,所以这对我来说不起作用


谢谢

我发布这个答案是为了提供信息,这并不是一个建议,实际上使用断言的副作用来修改代码

话虽如此

    boolean debug = false;
    assert debug = true;

    if(debug){
        /* Do debugging stuff */
    }

Java中没有本机条件编译。但是,本文详细介绍了使用ANT和注释(如
/[ifdef]
/[enddef]


祝你好运

还有一个解决方案,它向Java添加预处理器指令:


您是希望在编译的字节码中省略调试代码,还是不希望调试代码运行?如果代码不运行,对我来说已经足够了,但最好是在编译的字节码中省略调试代码。@Geobits您链接到的解决方案很好,谢谢!有趣的是,我很确定Java中会有一些本机条件编译,但显然不是。我会查看你的链接,但我认为出于我的需要,@Geobits post的链接提供了一个对我来说足够好的解决方案