Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 如何在build.gradle中获取资源值?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
resValue方法(或任何它被称为)允许您在buildTypes或productFlavors中设置资源值.是否有相应的方法获取由resValue设置的资源值?

似乎在buildTypes之前对productFlavors进行了评估,因此在buildTypes中设置的resValue优先.我想在调试版本中附加“调试”到应用程序名称,但是我需要获取在产品风格中设置的值才能附加到它.

编辑:我试过MarcinKoziński的建议使用一个变量,但所有的产品风格都在任何构建类型之前进行评估.因此,这不行:

android {
    String appName = ""

    productFlavors {
        Foo {
            appName = "Foo"
        }

        Bar {
            appName = "Bar"
        }
    }

    buildTypes {
        release {
            resValue "String","app_name",appName 
        }

        debug {
            resValue "String",appName + " Debug"
        }
    }
}

在buildTypes中,appName始终具有最后一个产品风格的值.所以在这个例子中,所有的构建都会收到名称“Bar”或“Bar Debug”.

基本上,我需要一个类似于applicationIdSuffix的resValueSuffix.显然没有这样的动物存在. com.android.application插件是否暴露了我可以用来实现这一点的任何东西?

解决方法

如果您只尝试设置App Label(或其他清单值),则可以使用清单占位符来解决此问题.
android {

    productFlavors {
        Foo {
             applicationId "com.myexample.foo"
             manifestPlaceholders = [ appName:"Foo"]
        }

        Bar {
             applicationId "com.myexample.bar"
             manifestPlaceholders = [ appName:"Bar"]
        }
    }

    buildTypes {
        release {
            manifestPlaceholders = [ appNameSuffix:""]
        }

        debug {
            manifestPlaceholders = [ appNameSuffix:".Debug"]
            applicationIdSuffix ".debug"
        }
    }
}

然后在您的Android清单中,您只需将这两个占位符用于您的应用程序名称(或其他值)

<application
        android:label="${appNamE}${appNameSuffix}"
        ...
 </application>

这允许您将所有4个变体并排安装在单个设备上,并在应用程序抽屉/启动器中给出不同的名称.

大佬总结

以上是大佬教程为你收集整理的android – 如何在build.gradle中获取资源值?全部内容,希望文章能够帮你解决android – 如何在build.gradle中获取资源值?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。