升级AGP 8.1.1后PackagingOptions配置同步失败求助
问题描述
项目升级至Gradle 8.1和AGP 8.1.1后,原PackagingOptions配置无法同步项目:
原配置代码:
packagingOptions.resources.apply { excludes.addAll( listOf( "META-INF/DEPENDENCIES", "META-INF/LICENSE", "META-INF/LICENSE.txt", "META-INF/license.txt", "META-INF/NOTICE", "META-INF/NOTICE.txt", "META-INF/notice.txt", "META-INF/ASL2.0" ) ) }
报错信息:
Unable to find method ''com.android.build.api.dsl.ResourcesPackagingOptions com.android.build.gradle.internal.dsl.PackagingOptions.getResources()'' 'com.android.build.api.dsl.ResourcesPackagingOptions com.android.build.gradle.internal.dsl.PackagingOptions.getResources()'
改用packaging配置块后:
packaging { resources { excludes.addAll( listOf( "META-INF/DEPENDENCIES", "META-INF/LICENSE", "META-INF/LICENSE.txt", "META-INF/license.txt", "META-INF/NOTICE", "META-INF/NOTICE.txt", "META-INF/notice.txt", "META-INF/ASL2.0" ) ) } }
报错信息:
Unresolved reference: packaging
同时Android Studio出现以下异常:
- 所有android代码块标红
- 提示"Code insight unavailable"
- 提示"internal syntax error"
以上异常均出现在app模块的build.gradle.src文件中。
当前环境:
- Android Studio Hedgehog
- AGP 8.1.1
- Gradle 8.1
已尝试清理缓存、删除.gradle目录等操作,问题未解决。
解决方案
1. 修正配置块的位置与语法
AGP 8.x版本中,packaging配置块必须放在android代码块内部,不能单独放置。正确配置示例:
android { // 其他Android配置(如compileSdk、defaultConfig等) packaging { resources { excludes.addAll( listOf( "META-INF/DEPENDENCIES", "META-INF/LICENSE", "META-INF/LICENSE.txt", "META-INF/license.txt", "META-INF/NOTICE", "META-INF/NOTICE.txt", "META-INF/notice.txt", "META-INF/ASL2.0" ) ) } } }
2. 修复Android Studio语法异常
若配置位置正确仍出现标红和语法错误,按以下步骤操作:
- 检查app模块的
build.gradle.kts(或.gradle)文件是否存在语法错误,比如括号不匹配、逗号遗漏等 - 点击Android Studio顶部工具栏的
File > Sync Project with Gradle Files重新同步项目 - 若仍未解决:
- 关闭Android Studio
- 删除项目根目录下的
.idea文件夹 - 重新打开项目并同步
3. 验证版本兼容性
AGP 8.1.1对应的Gradle版本范围是8.0-8.2,当前使用的Gradle 8.1符合要求,无需调整版本。
内容的提问来源于stack exchange,提问作者Flexei Prata
相关产品推荐
相关产品推荐

