You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio构建时如何禁用第三方AAR的Lint字符串格式警告?

解决第三方AAR引发的Lint字符串格式警告问题

问题描述

构建项目时出现如下Lint警告:

> Task :app:mergeStageResources
/builds/client-side/platform-specific/mobile/mobile-android/mobile-android/lib/libui/build/.transforms/fa2c5bac03c754a79970e0210e03bb59/transformed/jetified-libui/res/values/values.xml:1669:4: Multiple substitutions specified in non-positional format of string resource string/accessibility_selected_range. Did you mean to add the formatted="false" attribute?

警告来自第三方AAR中的资源文件,无法直接编辑。已尝试在App模块Gradle配置Lint规则、在lint.xml添加忽略路径,但均无效。

可行解决建议

1. 精准匹配第三方库路径忽略警告

修改lint.xml,将忽略路径限定为第三方库的具体资源文件,避免宽泛匹配导致规则不生效:

<?xml version="1.0" encoding="UTF-8"?>
<lint>
    <issue id="StringFormatMatches">
        <ignore path="**/jetified-libui/res/values/values.xml" />
    </issue>
    <!-- 若有其他相关警告,添加对应issue id -->
    <issue id="StringFormatInvalid">
        <ignore path="**/jetified-libui/res/values/values.xml" />
    </issue>
</lint>

2. 修正Gradle的Lint配置写法

确保Lint规则配置在android块下的lintOptions中,避免语法错误导致规则不生效:

android {
    lintOptions {
        abortOnError false
        // 禁用所有相关的字符串格式检查规则
        disable 'StringFormatMatches', 'StringFormatInvalid', 'StringFormatCount'
        // 如需引用lint.xml,保留此行
        lintConfig rootProject.file("lint.xml")
    }
}

3. 覆盖第三方库的字符串资源

在App模块的res/values/strings.xml中添加同名字符串资源,手动添加formatted="false"属性修正格式,编译时会自动覆盖第三方库的对应资源:

<string name="accessibility_selected_range" formatted="false">
    <!-- 填入第三方库中该字符串的原内容 -->
</string>

4. 禁用第三方库的所有Lint检查

如果该第三方库的Lint警告较多,可直接忽略整个库的所有Lint检查,在lint.xml中添加:

<?xml version="1.0" encoding="UTF-8"?>
<lint>
    <issue id="all">
        <ignore path="**/jetified-libui/**" />
    </issue>
</lint>

内容的提问来源于stack exchange,提问作者Александр Лейкин

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 21:46:15