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

创建Android Library后出现merged_manifest的FileNotFoundException

解决Android Library依赖引发的FileNotFoundException与重复内容根警告

优先处理*「Duplicate content roots detected」*警告(核心诱因)

这个警告大概率是库模块和主模块的源码/资源目录被重复关联,直接干扰了Gradle的Manifest合并流程,先搞定它:

  • 打开Android Studio的「Project Structure」(快捷键Ctrl+Alt+Shift+S)
  • 切换到「Modules」标签,挨个检查主模块和库模块的「Sources」「Resources」页签
  • 找到带黄色警告的重复目录,移除其中一方的关联(比如库模块误加了主模块的res目录,直接删掉)
  • 也可以直接查看模块的build.gradle,确保sourceSets没有重复声明路径,示例:
    sourceSets {
        main {
            java.srcDirs = ['src/main/java']
            res.srcDirs = ['src/main/res']
            manifest.srcFile 'src/main/AndroidManifest.xml'
        }
    }
    
    保证主模块和库模块的sourceSets路径完全不重叠

修复FileNotFoundException(Manifest合并失败)

解决重复根目录后,针对缺失Manifest文件的问题做以下操作:

  • 检查库模块的AndroidManifest.xml:
    • 确认根标签manifest的package属性合法,无特殊字符;另外你的项目路径含空格「Radio Tuner」,虽然Gradle理论支持,但建议临时把项目移到无空格路径(比如R:\RadioTuner)测试
    • 库的Manifest里不要包含application标签,库不需要独立的Application配置,有就删掉
  • 强制刷新缓存并重建:
    • 执行Gradle命令:Windows下用gradlew.bat clean build --refresh-dependencies,Mac/Linux用./gradlew clean build --refresh-dependencies
    • 手动删除项目根目录的.gradle文件夹,以及各模块的build文件夹,再重启Android Studio
  • 对齐Gradle配置:
    • 确保主模块和库模块的compileSdkVersion、minSdkVersion、targetSdkVersion完全一致
    • 库模块的build.gradle顶部必须声明为com.android.library插件,不能是com.android.application:
      plugins {
          id 'com.android.library'
      }
      

额外排查方向

  • 如果用了Manifest占位符,检查库模块是否引用了主模块未定义的占位符,导致合并失败
  • 暂时禁用第三方插件(比如混淆、多渠道打包插件),排查是否是插件干扰了Manifest合并流程

内容的提问来源于stack exchange,提问作者gpl

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 16:15:38