我正在使用Gradle来构建我的Android应用程序.我试图使用基于构建类型(发布或调试)的一些标志.
我的Gradle文件如下所示:
android { buildTypes { debug { buildConfigField 'boolean', 'PREPROD', 'true' buildConfigField 'boolean', 'STAGING', 'false' } release { buildConfigField 'boolean', 'PREPROD', 'false' buildConfigField 'boolean', 'STAGING', 'false' } } }
如果我试图打电话BuildConfig.PREPROD
或BuildConfig.STAGING
我得到一个"无法解决符号"错误.Gradle同步成功,所以我不知道是否忘记了一些步骤才能使用此功能?
生成的BuildConfig.java
文件如下(in build/source/buildConfig/debug/com.example.myapp
):
package com.example.myapp; public final class BuildConfig { public static final boolean DEBUG = Boolean.parseBoolean("true"); public static final String PACKAGE_NAME = "com.example.myapp"; public static final String BUILD_TYPE = "debug"; public static final String FLAVOR = ""; public static final int VERSION_CODE = 400; public static final String VERSION_NAME = ""; }
MRodrigues.. 66
确保您的文件正在导入正确的BuildConfig类.有时,如果您有其他项目库或模块,则可能导入错误的buildConfig.确保你的导入就像这个com.project.app.BuildConfig.我有同样的问题,问题是这个,希望它可以帮助某人.
确保您的文件正在导入正确的BuildConfig类.有时,如果您有其他项目库或模块,则可能导入错误的buildConfig.确保你的导入就像这个com.project.app.BuildConfig.我有同样的问题,问题是这个,希望它可以帮助某人.
我得到了同样的错误.尝试单击" 保存 "右侧的" 同步".在gradle sync之后执行此操作.
发生在我身上,因为我没有正确地声明一个String字段.
我忘记了逃脱的角色.改变自:
buildConfigField "String", "FOO", "foo"
至
buildConfigField "String", "FOO", "\"foo\""
解决了这个问题.
确保将参数也添加到defaultConfig.您可能正在运行默认的buildVarient,而您的参数是在特定的buildVariant中定义的.
在build gradle文件中使用:
defaultConfig { buildConfigField('String' , 'myParameter', 'someValue') }
然后,在代码中使用此:
String myParam= BuildConfig.myParameter;
希望这有帮助,MA :)
即使您单击顶部的黄色"立即同步"栏,gradle构建文件中的更改也不会刷新BuildConfig类的生成.完全清理将强制生成此文件.
在Android Studio中:构建 - >清理项目
同样的问题让我疯狂了一个多星期.就我而言,这是一个简单的导入缺失.我找了它但不知何故在我能找到的文档中没有提到你需要在任何地方导入BuildConfig类!然而,这是合乎逻辑的.我继续相信这可能是自动的.嗯,它不是.
所以尝试:
单击一次BuildConfig.
导致错误的代码.帮助信息应出现在蓝色气泡中,例如:" ? uk.co.package.app.BuildConfig? Alt + ENTER
"点击它,Android工作室会自动添加缺少的导入.要么
添加import uk.co.package.app.BuildConfig;
导入列表中的某个位置.
重建......它有效!好吧,无论如何它确实对我有用.
希望有助于另一个像我这样的机器人新手!