赞
踩
通过资源ID引用资源提示错误 Attribute value must be constant
在根目录下的文件 gradle.properties 中添加如下配置,然后Sync Project
android.nonFinalResIds=false
android.nonFinalResIds
是Android开发中一个用于解决资源ID问题的机制。在Android应用程序中,所有的资源(例如,布局文件、图片、字符串等)都会在编译时被赋予一个唯一的资源ID,以便在代码中引用。
通常,这些资源ID被声明为 final
,这意味着它们在编译时就已经确定了,不能再被修改。然而,有时候在开发过程中,我们可能需要动态地修改这些资源ID,这就会导致“Attribute value must be constant”这样的错误,因为注解要求属性值必须是常量。
为了解决这个问题,Android引入了android.nonFinalResIds
机制。通过在项目的gradle.properties
文件中添加android.nonFinalResIds = true
,你可以将资源ID声明为非final
的,从而允许在运行时动态修改它们。
需要注意的是,将android.nonFinalResIds
设置为true
会有一些限制和影响:
因此,在使用android.nonFinalResIds
时应该谨慎考虑,确保你真正需要动态修改资源ID,并且了解潜在的风险和限制。如果可能的话,最好还是在设计和编码阶段就确定好资源ID,避免在运行时进行修改。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。