Gradle buildConfigField BuildConfig无法parsing符号
我正在使用Gradle构buildAndroid应用程序。 我想基于构buildtypes(释放或debugging)使用一些标志。
我的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
我得到一个“无法parsing符号”的错误。 Gradle同步是成功的,所以我不知道我是否忘了一些步骤才能使用这个function?
生成的BuildConfig.java
文件如下(在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 = ""; }
确保你的文件正在导入正确的BuildConfig类。 有时如果你有其他的项目库或模块,可能会导入错误的buildConfig。 确保你的导入就像这个com.project.app.BuildConfig 。 我有同样的问题,问题是这个,希望它可以帮助别人。
我得到同样的错误。 尝试点击同步 ,在保存的右侧。 在gradle同步后执行此操作 。
即使您单击顶部的黄色“立即同步”栏,Gradle构build文件中的更改也不刷新BuildConfig类的生成。 完整的清洁将强制产生这个文件。
在Android Studio中:生成 – >清理项目
同样的问题已经让我坚持了一个多星期。 就我而言,这是一个简单的import缺失。 我找了它,但不知何故在文档中,我可以find它提到你需要导入BuildConfig类的任何地方! 然而,这是合乎逻辑的。 我继续相信这可能是自动的。 那么,这不是。
所以请尝试:
- 在
BuildConfig.
上单击一次BuildConfig.
导致错误的代码的一部分。 一个帮助信息应该出现在一个蓝色的泡泡中,如下所示:“? uk.co.package.app.BuildConfig? Alt + ENTER
”点击它,Android Studio自动添加缺less的导入。 要么 - 添加
import uk.co.package.app.BuildConfig;
在你的import清单的某处。
重新build立…它的作品! 好吧,无论如何,它为我做了。
希望有助于另一个像我一样的gradle android新手!
确保你的参数也添加到defaultConfig。 您可能正在运行默认的buildVarient,而您的参数是在特定的buildVariant中定义的。
在构buildgradle文件中使用这个:
defaultConfig { buildConfigField('String' , 'myParameter', 'someValue') }
然后,在代码中使用这个:
String myParam= BuildConfig.myParameter;
希望这有助于,麻烦:)
search出现的BuildConfig。 我有一个不存在的BuildConfig和编译器的stream氓导入,而不是捕获指向其他地方的随机代码行。
发生在我身上,因为我没有正确地声明一个string字段。
我忘了逃跑的人物。 从:
buildConfigField "String", "FOO", "foo"
至
buildConfigField "String", "FOO", "\"foo\""
解决了这个问题。
在我的情况下,问题是我刚刚重命名了我的项目模块,但该模块的名称引用不会自动更新在AndroidManifest.xml
。
手动重命名和重build项目解决了这个问题。