Gradle 构建在根文件夹中找不到 apikey.properties 文件

Posted

技术标签:

【中文标题】Gradle 构建在根文件夹中找不到 apikey.properties 文件【英文标题】:Gradle build won't find the apikey.properties file in root folder 【发布时间】:2021-12-08 04:51:18 【问题描述】:

我正在尝试添加一个带有一些客户端 ID 和机密的 apikey.properties 文件以获取令牌。

尝试 Victory 在此线程中给出的示例后遇到的问题: Where to keep the OAuth client credentials on android

我在尝试构建时遇到了这个问题:

Build file 'C:\app root\app\build.gradle' line: 7

A problem occurred evaluating project ':app'.
> C:\app root\apikey.properties (The system cannot find the file specified)

build.gradle(:app):

...
def apikeyPropertiesFile = rootProject.file("apikey.properties")
def apikeyProperties = new Properties()
apikeyProperties.load(new FileInputStream(apikeyPropertiesFile))
...

...
 // should correspond to key/value pairs inside the file
        buildConfigField("String", "scope", apikeyProperties['scope'])
        buildConfigField("String", "client_id", apikeyProperties['client_id'])
        buildConfigField("String", "client_secret", apikeyProperties['client_secret'])
        buildConfigField("String", "grant_type", apikeyProperties['grant_type'])
...

apikey.properties 文件:

scope=xxx
client_id=xxx
client_secret=xxx
grant_type=xxx

不确定我在这里做错了什么,感谢任何帮助!

【问题讨论】:

您是否按照示例中的说明将文件放入`project/apikey.properties` 中?相对于project/app/build.gradle 文件。 是的,这些值在 Intellij 中突出显示,当将 apikey.propeties 移动到其他位置时,它们不再被发现。所以看起来变量会以某种方式传播,但是在构建时没有找到文件......下面的 BroscR 发布了一个可行的解决方案.. 【参考方案1】:

试试这个。

gradle 文件..

    Properties properties = new Properties()
    if (rootProject.file("apikey.properties").exists()) 
        properties.load(rootProject.file("apikey.properties").newDataInputStream())
    
    def mapsApiKey = properties.getProperty("MAPS_API_KEY")
     defaultConfig 
 buildConfigField("String", "MAPS_API_KEY", "\"$mapsApiKey\"")

apikey.properties..

MAPS_API_KEY=AIzqwdqwdqwdqwdqwdqdww

【讨论】:

谢谢!工作正常。你知道我是否可以在 Azure DevOps 中使用 Replace Tokens 来替换这些值吗? marketplace.visualstudio.com/items?itemName=qetza.replacetokens 不,我不知道。很抱歉,如果您愿意,可以创建新问题.. 好的,是的,会尝试一下,看看它是否有效,否则会发布一个新问题。再次感谢!

以上是关于Gradle 构建在根文件夹中找不到 apikey.properties 文件的主要内容,如果未能解决你的问题,请参考以下文章

在根项目中找不到任务“publishApkRelease”

在根项目中找不到任务“publishApkRelease”

Android Studio 构建失败,“在根项目‘MyProject’中找不到任务’。”

Django 在根文件夹中找不到“/media/image.png”

Flutter:在根项目“android”中找不到任务“assembleStageDebug”

Gradle在本地Maven存储库中找不到现有的依赖项