上传AAB至Play Console报指定域名无效如何解决
上传AAB包至Google Play商店时触发如下报错:
The domain name '' you have specified is invalid. Specify a valid domain name
(译文:你指定的域名''无效,请填写有效的域名)
已确认安装包完成签名,且通过Android Studio图形界面、命令行两种方式构建的安装包上传时均触发该报错,无法定位存在空值/错误的域名配置项。
模块构建配置的
namespace/applicationId为空或格式错误
Android Gradle Plugin 7.0及以上版本要求所有参与构建的模块(含主模块、动态特性模块、本地引入的公共库模块)必须配置合法的namespace字段,主模块还需配置格式合规的applicationId,格式需符合反向域名规则(例如com.yourcompany.yourapp)。如果某个模块的namespace填空、仅填了空格、或者格式不符合要求,本地打包不会触发报错,但上传Google Play时会被扫描拦截。很多人容易漏改非主模块的配置,只改主模块参数无法解决问题。
排查方式:逐个打开所有模块的build.gradle/build.gradle.kts文件,检查android闭包下的namespace字段、defaultConfig闭包下的applicationId字段,确保没有空值、没有前后多余空格、格式符合反向域名规范。AndroidManifest中域名相关属性配置为空
应用清单文件中ContentProvider(含FileProvider)的android:authorities属性、DeepLink意图过滤器的android:host属性,都会被Google Play的上传校验逻辑识别为域名类字段。如果这些字段直接留空、或者引用了未赋值的Manifest占位符,本地打包合并清单时不会触发校验,上传时就会报空域名错误。不少人配置FileProvider、DeepLink时图省事临时留空字段,转头就忘,本地debug运行正常,打release包上传才会触发拦截。
排查方式:- 全局搜索项目内所有AndroidManifest.xml文件中的
android:authorities、android:host关键字,检查所有硬编码赋值的字段没有空值、没有多余空格 - 检查所有通过
${变量名}引用的占位符,确认对应模块build.gradle的manifestPlaceholders中给对应变量赋了有效值,没有漏配 - 如果怀疑是第三方SDK带入的空配置,可以直接执行bundletool命令导出AAB包内最终合并的完整清单排查,不用逐模块翻找:
在导出的清单内容里全局搜索bundletool dump manifest --bundle=your_app_release.aabhost=""、authorities=""这类空值字段,可直接定位问题来源。
- 全局搜索项目内所有AndroidManifest.xml文件中的
Google Play Console后台配置项漏填
首次上传AAB时,平台会同步校验后台已填写的应用配置,如果「商店展示」「隐私政策」「开发者账号信息」板块中要求填写的官方网站、隐私政策地址、开发者联系网址等字段留空,或者填写的网址格式不符合规范,也会抛出该类域名错误,和安装包本身配置无关。
排查方式:依次检查Play Console内所有要求填写网址/域名的输入项,确认没有留空,填写的地址符合标准URL格式(带https://前缀,无多余特殊字符)。
内容的提问来源于stack exchange,提问作者Drekza

