为API 21仿真器AS 4.0.1构建时,条目名“ META-INF / MANIFEST.MF”发生冲突

问题描述

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

解决方法

我遇到了[同样的问题][1]。在问题评论中,我得到了 [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 不变,而是添加一些后期处理以复制到所需位置。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...