META-INF / versions / 9 / module-info.class:损坏的类文件? (此功能需要ASM6)

问题描述 投票:1回答:2

我在Bouncycastle中遇到问题,仅在运行:lint任务时出现。

通常似乎是Java 9字节码版本53.0 / ASM版本冲突。

这些是依赖项:

// https://mvnrepository.com/artifact/org.bouncycastle
implementation "org.bouncycastle:bcprov-jdk15on:1.64"
implementation "org.bouncycastle:bcpkix-jdk15on:1.64"

导致:lint任务引发处理错误:

> Task :mobile:lint
Error processing bcpkix-jdk15on-1.64.jar:META-INF/versions/9/module-info.class: broken class file? (This feature requires ASM6)
Error processing bcprov-jdk15on-1.64.jar:META-INF/versions/9/module-info.class: broken class file? (This feature requires ASM6)

META-INF / versions / 9 / module-info.class:损坏的类文件? (此功能需要ASM6)

类似“损坏的类文件”是伪造的错误消息,它无法解码module-info.class。问题是:如何提供ASM6?由于在旧版本中不会发生(请参见我对答案的尝试),因此唯一可接受的答案将是当前版本1.64

java android bouncycastle java-bytecode-asm android-lint
2个回答
0
投票

使用旧版本(可能是用Java 8构建的,没有这样的处理错误:

// https://mvnrepository.com/artifact/org.bouncycastle
implementation "org.bouncycastle:bcprov-jdk15on:1.60"
implementation "org.bouncycastle:bcpkix-jdk15on:1.60"

此问题显然是在版本1.61(使用Java 9构建的)中引入的。


也从两个JAR作品中删除versions/9/module-info.class文件。

这可以通过Exec任务来自动执行,这取决于:lint


0
投票

[C0文件是自Java 9以来引入的Java模块系统的一部分。根据Android IssueTracker上的module-info.class,此错误已从Android Studio 3.4开始修复。

© www.soinside.com 2019 - 2024. All rights reserved.