use*_*822 21 java android gradle
我们有一个多项目应用程序,我们正在努力学习.构建导致Java编译错误,如:
AFragment.java:159: constant expression required
case R.id.aBtn:
Run Code Online (Sandbox Code Playgroud)
我们已经确认错误中报告的常量在生成中R.java.
一个线索是错误仅适用于开关值.例如,没有使用错误findViewById(R.id.aBtn).
还要注意,常量来自主项目,而不是一个库项目.
对于任何想要摆脱错误的人来说,laalto的建议将解决它.
他提供的链接,以及eclipse没有显示使用gradle构建时出现的错误这一事实给了我另一条线索.eclipse生成的R.java将主项目常量定义为'final',但gradle生成的值不是'final'.真正的解决方案必须是纠正gradle构建文件.
解决方案(2014-01-09)
我们的app.gradle应用程序是应用android-library插件而不是android插件.是这样的:
apply plugin:'android-library'
把它改成这个:
apply plugin:'android'
解决了这个问题.
laa*_*lto 33
库项目资源标识符不是常量static final ints,只是static ints.
将需要切换库资源ID的代码转换为if- else结构.
进一步阅读:http://tools.android.com/tips/non-constant-fields
| 归档时间: |
|
| 查看次数: |
13089 次 |
| 最近记录: |