Android 错误:(12,32)错误:为ACRA toast声明toast字符串时,属性值必须为常量

Android 错误:(12,32)错误:为ACRA toast声明toast字符串时,属性值必须为常量,android,toast,acra,Android,Toast,Acra,我正试图在我的图书馆项目中引入ACRA库。当我为toast设置字符串时,我得到一个“属性值必须是常量”错误。请参阅附加的屏幕截图 和R.string.crash_toast_文本: 请注意,这些代码行来自这里 基于Commonware 18答案,我让它工作了。如果有人遇到同样的情况,下面是一个示例代码: final ACRAConfiguration config = ACRA.getNewDefaultConfig(this); try { config.set

我正试图在我的图书馆项目中引入ACRA库。当我为toast设置字符串时,我得到一个“属性值必须是常量”错误。请参阅附加的屏幕截图

和R.string.crash_toast_文本:

请注意,这些代码行来自这里


基于Commonware 18答案,我让它工作了。如果有人遇到同样的情况,下面是一个示例代码:

 final ACRAConfiguration config = ACRA.getNewDefaultConfig(this);

    try {
        config.setMode(ReportingInteractionMode.TOAST);
    } catch (ACRAConfigurationException e) {
        e.printStackTrace();
    }

    config.setResToastText(R.string.crash_toast_text);
    ACRA.init(this, config);

这段代码是在应用程序中还是在库中?是在库中,我忘了提到,对不起,我怀疑这是你的问题。ACRA实际上是在应用程序模块中配置的,而不是在库模块中配置的,因此文档反映了这种偏差<库的code>R值作为非常量值生成(这就是为什么不能在
case
语句中使用它们的原因)。我怀疑您需要更直接地在Java代码中设置
ACRAConfiguration
来替换注释。似乎
R.string.crash\u toast\u text
未声明为
final
。我怀疑这是因为您正在开发库项目而不是应用程序项目。您是否正在使用Android Studio、gradle和“新”目录结构(与旧的Eclipse结构相反)?@Commonware,您已经工作了。如果你把它作为一个答案,我都接受。非常感谢。