【问题标题】:Entry name 'META-INF/MANIFEST.MF' collided when building for API 21 emulator, AS 4.0.1为 API 21 模拟器 AS 4.0.1 构建时,条目名称“META-INF/MANIFEST.MF”发生冲突
【发布时间】:2020-08-13 03:47:18
【问题描述】:

在 Android Studio 4.0.1 中为 API 21 模拟器构建时,出现错误:“条目名称 'META-INF/MANIFEST.MF' 发生冲突”。为其他平台版本、模拟器或设备构建确实有效。有什么想法可能是错的吗?我的猜测是存在与 Android 构建过程为 API 21 注入的向后兼容性依赖项相关的冲突,错误消息无助于隔离问题。运行构建任务本身不会获得更多日志输出不会产生任何问题(“任务执行完成'构建'。”)

【问题讨论】:

  • 我遇到了同样的问题。在我将大部分库更新到最新版本后,问题就解决了
  • 你找到解决这个@straya的方法了吗?
  • 近年来我一直遇到这样的旧模拟器问题,对不起。我想我从来没有看到过解决该案例的方法。
  • 查看类似的 errorpossible solutions

标签: android android-emulator android-studio-4.0


【解决方案1】:

我遇到了[同样的问题][1]。在问题的 cmets 中,我获得了 [another issue][2] 的链接,然后我得到了对我有用的解决方案。

我的项目在 build.gradle(:app) 中有以下几行专门用于 TeamCity

applicationVariants.all { variant ->
    variant.outputs.all {
        outputFileName = "../../" + outputFileName
    }
}

但它会使本地构建过程崩溃。

所以我只需添加条件并解决问题!

applicationVariants.all { variant ->
    variant.outputs.all {
        if (rootProject.hasProperty("teamcity"))
            outputFileName = "../../" + outputFileName
    }
}

要点:outputFileName API 不正式支持更改输出文件路径。一种解决方法是保持 outputFileName 不变,而是添加一些后期处理以复制到所需的位置。

【讨论】:

    猜你喜欢
    • 2021-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 2021-01-17
    • 2011-05-19
    • 2014-01-11
    • 1970-01-01
    相关资源
    最近更新 更多