清单合并异常:SAXParseException

Posted

技术标签:

【中文标题】清单合并异常:SAXParseException【英文标题】:Manifest merger exception: SAXParseException 【发布时间】:2020-04-03 13:21:50 【问题描述】:

我们有一个项目使用不同的产品风味和产品类型。当我选择特定风味时,会生成此错误:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:processSomeFlavorDebugManifest'.
> com.android.manifmerger.ManifestMerger2$MergeFailureException: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.

这是我尝试过的:

使用 -info、-debug、-scan 运行任务,帮助不大。 检查了两个清单文件以确保序言中没有奇怪的字符或空格 清理项目 重建项目 缓存无效并重新启动 已删除 AndroidSDK 和 Android Studio(以及 ~/Library/... 中的 AndroidStudio3.5 目录)

奇怪的是,这个确切的分支对其他人来说构建得非常好。有没有人遇到过这种情况?

【问题讨论】:

这里可能已经回答了结帐***.com/questions/3030903/… 我不认为它是清单本身,因为它构建在其他机器上并构建服务器。 “用 -info、-debug、-scan 运行任务,不是很有帮助” 不太好,但你有收获吗?一些额外的信息可能会有所帮助... 查看这个***.com/questions/5138696/… 请同时添加您的清单代码@TakeshiKaga 【参考方案1】:

检查你的清单是否有这个

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          package="yourpacagename">

欲了解更多信息,请查看 github 上的 issue

你所有的 xml 文件也应该在开头有这一行

<?xml version="1.0" encoding="UTF-8"?>

【讨论】:

【参考方案2】:

这个错误是从 android gradle 插件中的“ma​​nifest merge”抛出的。

尝试将此行添加到主清单文件中的manifest 节点。

xmlns:tools="http://schemas.android.com/tools"

注意:您需要使用相同的android支持库版本。您需要使用支持库 28.0.0 版本。

希望对你有帮助..!

【讨论】:

【参考方案3】:

试试这个解决方案:

Gradle assemble -info 提示我 Manifest 具有不同的 SDK 版本,无法合并。

我需要编辑我的 Manifests 和 build.gradle 文件,然后一切正常。

为了清楚起见,您需要在 AndroidManifest.xml

中编辑 uses-SDK
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="16" />

和 android 部分,尤其是 build.Gradle 文件中的 minSdkVersiontargetSdkVersion

android 
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig 
        minSdkVersion 14
        targetSdkVersion 16
    

【讨论】:

以上是关于清单合并异常:SAXParseException的主要内容,如果未能解决你的问题,请参考以下文章

在 Android Gradle 构建中禁用清单合并

清单合并失败,使用工具:overrideLibrary

清单合并失败错误

即时应用架构的 Crashlytics 清单合并问题

如何将多个清单文件嵌入/合并到 C# 应用程序中?

清单合并失败:属性 application@appComponentFactory - Androidx