使用 android 资源时出现“表达式中的数字溢出”

"Numeric overflow in expression” when using android resources

我已经这样声明了两个整数资源:

<resources>
    <integer name="COLUMNS">5</integer>
    <integer name="ROWS">4</integer>
</resources> 

当我尝试像这样计算结果单元格数(基于 0)时:

R.integer.COLUMNS * R.integer.ROWS-1

我收到警告 Numeric overflow in expression

任何人都可以向我解释为什么会出现此警告以及它是否有效甚至危险(崩溃、缓冲区溢出等)?


Android Studio 3.3 Build #AI-182.5107.16.33.5199772,建于 2018 年 12 月 25 日 JRE: 1.8.0_152-release-1248-b01 amd64 JVM:JetBrains 的 OpenJDK 64 位服务器虚拟机 s.r.o Windows 10 10.0

R.integer.COLUMNS 是资源的整数 id 而不是资源的 value
您可以通过以下方式获取资源的价值:

getResources().getInteger(R.integer.COLUMNS)