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

如何为依赖模块on_audio_query_android指定命名空间?Gradle与Java升级后构建失败求助

如何为依赖模块on_audio_query_android指定命名空间?Gradle与Java升级后构建失败求助

兄弟,我之前升级Gradle和Java版本后也碰到过几乎一模一样的问题,给你几个实用的解决方案,按优先级来试:

1. 最省心的方案:直接升级on_audio_query依赖

你的on_audio_query: 2.9.0版本确实比较老了,这个版本对应的on_audio_query_android还没适配Gradle 8.x的命名空间要求。建议直接把pubspec.yaml里的依赖版本改成最新稳定版(你可以在pub.dev上确认具体的最新版本号),然后执行:

flutter pub upgrade

官方在后续版本里已经修复了Gradle 8和Android 14的兼容问题,升级后基本就能解决这个构建错误。

2. 临时救急:手动给依赖模块添加命名空间

如果因为项目依赖冲突暂时没法升级,你可以通过修改项目的Gradle配置,强制给on_audio_query_android模块补上命名空间:
打开项目根目录下的android/build.gradle,在allprojects代码块里添加下面的脚本:

subprojects {
    if (name.contains('on_audio_query_android')) {
        android {
            namespace 'com.lucasjosino.on_audio_query' // 这是该库官方的命名空间,不会错
        }
    }
}

这段代码会在构建时自动给指定的依赖模块注入命名空间配置,绕过Gradle的强制检查。

3. 检查Gradle与安卓插件版本匹配

Gradle 8.1需要对应安卓Gradle插件8.1.x版本,你可以打开android/build.gradle,确认classpath里的插件版本:

dependencies {
    classpath 'com.android.tools.build:gradle:8.1.4' // 版本要和Gradle 8.1对应
}

同时确保gradle/wrapper/gradle-wrapper.properties里的Gradle下载地址正确:

distributionUrl=https\://services.gradle.org/distributions/gradle-8.1-bin.zip

错误原因说明

Gradle 8.x开始强制要求所有安卓库模块必须通过namespace声明命名空间,替代了原来在AndroidManifest.xml里的package属性。而旧版本的on_audio_query_android没有配置这个,导致构建时无法创建LibraryVariantBuilder实例,就出现了你看到的错误。

备注:内容来源于stack exchange,提问作者tom.g.c

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 17:09:39