繁体   English   中英

清单合并异常:SAXParseException

[英]Manifest merger exception: SAXParseException

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

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 目录)

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

试试这个解决方案:

Gradle assemble -info 提示我,清单具有不同的 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
    }
}

此错误是从 android gradle 插件内部的“清单合并”引发的。

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

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

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

我希望它会帮助你..!

检查你的清单是否有这个

<?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 上查看此问题

您所有的 xml 文件都应该在开头有这一行

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM