清单合并异常: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 插件中的“manifest 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 文件中的 minSdkVersion
和 targetSdkVersion
android
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig
minSdkVersion 14
targetSdkVersion 16
【讨论】:
以上是关于清单合并异常:SAXParseException的主要内容,如果未能解决你的问题,请参考以下文章