Gaë*_*tan 66 android buildconfig gradle
我正在使用Gradle来构建我的Android应用程序.我试图使用基于构建类型(发布或调试)的一些标志.
我的Gradle文件如下所示:
android {
buildTypes {
debug {
buildConfigField 'boolean', 'PREPROD', 'true'
buildConfigField 'boolean', 'STAGING', 'false'
}
release {
buildConfigField 'boolean', 'PREPROD', 'false'
buildConfigField 'boolean', 'STAGING', 'false'
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果我试图打电话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 = "";
}
Run Code Online (Sandbox Code Playgroud)
Ket*_*ani 70
在 build.gradle(Module:App) 和 Rebuild Project 中添加以下内容
android {
buildFeatures {
buildConfig = true
}
}
Run Code Online (Sandbox Code Playgroud)
MRo*_*ues 66
确保您的文件正在导入正确的BuildConfig类.有时,如果您有其他项目库或模块,则可能导入错误的buildConfig.确保你的导入就像这个com.project.app.BuildConfig.我有同样的问题,问题是这个,希望它可以帮助某人.
bru*_*les 40
我得到了同样的错误.尝试单击" 保存 "右侧的" 同步".在gradle sync之后执行此操作.
svp*_*dga 20
我也发生了同样的情况,在项目根目录中运行时修复:
./gradlew assembleDebug
Run Code Online (Sandbox Code Playgroud)
Lou*_*uis 17
发生在我身上,因为我没有正确地声明一个String字段.
我忘记了逃脱的角色.改变自:
buildConfigField "String", "FOO", "foo"
Run Code Online (Sandbox Code Playgroud)
至
buildConfigField "String", "FOO", "\"foo\""
Run Code Online (Sandbox Code Playgroud)
解决了这个问题.
Max*_*Max 14
我在这里尝试了一切,但没有任何对我有用。我最初遇到一个问题,即我提到的 BuildConfig 方法之一没有被检测到,所以我在这里尝试了一些解决方案。这只会进一步破坏我的项目(或者我是这么认为的)。我尝试更改我的构建类型,但最终遇到了OP提到的问题(这是我没有的问题。我来这里寻找另一个问题的解决方案,最终为自己创建了OPs问题facepalm)。
\n所以为我解决问题的解决方案是,只需转到
\n构建 > 制作模块 \'app\'。
\n不管我有多少红色标记迹象,它都为我解决了一切。在我通过尝试这里的解决方案破坏项目后,我什至无法导入项目的 BuildConfig,这是我没有遇到的问题(我很愚蠢,是的,我不知道我在做什么)。我认为进行干净的构建会进一步破坏事情。但这为我解决了一切。
\n来源:https://tinaciousdesign.com/blog/buildconfig-debug-always-returns-false-android/
\n\n\nTLDR:BuildConfig 是项目中生成的类。如果 Android Studio 无法找到它,它会提示您导入它。不要导入它,否则你会收到 lint 警告。像往常一样运行项目,忽略红色。你的问题应该得到解决
\n
小智 13
确保将参数也添加到defaultConfig.您可能正在运行默认的buildVarient,而您的参数是在特定的buildVariant中定义的.
在build gradle文件中使用:
Run Code Online (Sandbox Code Playgroud)defaultConfig { buildConfigField('String' , 'myParameter', 'someValue') }
然后,在代码中使用此:
Run Code Online (Sandbox Code Playgroud)String myParam= BuildConfig.myParameter;
希望这有帮助,MA :)
即使您单击顶部的黄色"立即同步"栏,gradle构建文件中的更改也不会刷新BuildConfig类的生成.完全清理将强制生成此文件.
在Android Studio中:构建 - >清理项目
小智 7
在 Android Studio 中, - 单击 Build 然后 Clean Project - 清理后单击 Rebuild Project。- 完成后,关闭您的项目。- 再次打开您的项目并运行它,错误不应再次出现,它已清除。
同样的问题让我疯狂了一个多星期.就我而言,这是一个简单的导入缺失.我找了它但不知何故在我能找到的文档中没有提到你需要在任何地方导入BuildConfig类!然而,这是合乎逻辑的.我继续相信这可能是自动的.嗯,它不是.
所以尝试:
BuildConfig.导致错误的代码.帮助信息应出现在蓝色气泡中,例如:" ? uk.co.package.app.BuildConfig? Alt + ENTER"点击它,Android工作室会自动添加缺少的导入.要么import uk.co.package.app.BuildConfig;导入列表中的某个位置.重建......它有效!好吧,无论如何它确实对我有用.
希望有助于另一个像我这样的机器人新手!
| 归档时间: |
|
| 查看次数: |
53513 次 |
| 最近记录: |