栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Cause: duplicate entry: module-info.class Android 构建问题及处理

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Cause: duplicate entry: module-info.class Android 构建问题及处理

报错关键词
Cause: duplicate entry: module-info.class
或
java.util.zip.ZipException: duplicate entry
情况说明

由于工作需要,需要进行jwt相关签名加密,从java项目中摘取了几个lib,创建了“签名 module”,以module形式引入,代码可以正常运行。
但是项目build 成了 aar,之后引入app就报错如下。

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileDebugJavaWithJavac'.
> Could not resolve all files for configuration ':app:debugCompileClassp
ath'.
  > Failed to transform shanghai_sdk_1.1_debug.aar to match attributes
{artifactType=android-classes-jar, org.gradle.usage=java-api}.
     > Execution failed for AarToClassTransform: C:UsersAdministrator.
gradlecachestransforms-2files-2.1360aab2cc5c51e0c1481c5e6da41
c114jetified-shanghai_sdk_1.1_debug.aar.
        > duplicate entry: meta-INF/versions/9/module-info.class

* Try:

解决经过
  1. 刷新 clean 、invalidate 无效
  2. 各种翻墙,搜出来效果,包括修改gradle:修改aar引用方式, 声明java版本,跳过报错task等的修改等 ,逻辑正常方法,均做了测试,无效。
  3. 搜索过程中有人提到了,代码错误,最开始认为module形式引入正常,就没在意,但是最终排除掉其他可能性 ,只能抱着试试看想法来:
    由于引入java 的jar是从maven本地库里面直接考出来的,中间也确实处理了一些“水土不服”的问题。于是开始试验,建了一个空项目,只引入几个jar包,再构建成aar,导入果然报错,至此问题定位明确。
  4. 缩小了定位范围后,搜索问题就清晰了,定位到这个文件是java1.9的新特性,我不能因为一个jar包而更换java环境,而且查到删除对应文件不影响使用,就备份了原始文件开始测试。
最终解决方式

https://blog.csdn.net/haohaounique/article/details/94780353
由于我的问题是 本地环境是java1.8,而引入的jar包包含1.9的特性,所以使用 压缩工具,打开jar包,并且删除jar包中的, module-info.class清单文件,然后再编译,正常通过。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/351583.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号