13

我正在寻找一种简单的方法来确保static final boolean DEBUG在将我的 Android 项目导出到 APK 时将我的标志设置为 false。

我尝试使用此处提到的“STOPSHIP”注释标记,但它似乎对 apk 导出没有任何影响,或者我使用错误。

为此目的构建 lint 扩展似乎有点过头了,有没有更简单的方法呢?

编辑

使用自动生成的BuildConfig.DEBUG标志,再加上一些难以错过的屏幕指示,表明您正在调试模式下运行(加上快速修复后永远不要在凌晨 4 点上传 apk 的心理提示) - 可能会让您有所了解。
它仍然不是我发布这个问题的 100% 万无一失的方法。

仍然有人抱怨BuildConfig.DEBUG随机无法按预期运行。所以这个问题仍然悬而未决 - 是否有一个lint技巧或类似的技巧来做到这一点?

4

4 回答 4

9

Android Gradle Plugin 3.0build.gradle开始,您可以在文件中进行以下配置:


    android { 
        lintOptions {
            fatal 'StopShip' 
        } 
    }

只要StopShip代码库中存在注释,这就会破坏构建。

观看Tor Norbye 的“使用 Android Lint 进行 Kotlin 静态分析”演讲的确切时间,他在演讲中谈到了该功能。

于 2017-11-22T08:06:43.140 回答
3

你解决了这个问题吗?我知道 2 年过去了,但我只是在搜索时发现这个STOPSHIP,是在评论时偶然发现的。

StopShip
--------
Summary: Code contains STOPSHIP marker

Priority: 10 / 10
Severity: Warning
Category: Correctness
NOTE: This issue is disabled by default!
You can enable it by adding --enable StopShip

所以我想说你应该执行命令才能启用它。

于 2015-12-03T15:44:40.160 回答
2

几年来我一直在可靠地使用这个标志:

BuildConfig.DEBUG

当我发布这个问题时,它没有很久以前发生的问题。

于 2019-11-17T15:15:14.877 回答
1

您可以修改 build.xml,让它从源代码中读取您的 DEBUG 标志,然后根据值更改 APK 的文件名。使该名称足够明确,您将永远不会分发或上传错误的 APK(您也可以使其成为其他后续自动化过程的条件)。

于 2013-07-24T09:31:33.737 回答