我在使用 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"
Run Code Online (Sandbox Code Playgroud)
这导致: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)
Run Code Online (Sandbox Code Playgroud)
META-INF/versions/9/module-info.class:类文件损坏?(此功能需要 ASM6)
这同样适用于:
// https://mvnrepository.com/artifact/com.google.code.gson/gson
implementation "com.google.code.gson:gson:2.8.6"
Run Code Online (Sandbox Code Playgroud)
自从升级1.4.1到1.4.2-native-mt,它又是一样的:
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.2-native-mt"
Run Code Online (Sandbox Code Playgroud)
kotlin-stdlib-1.4.0.jar:META-INF\versions\9\module-info.class:类文件损坏?(模块需要 ASM6)
Gradle : 4.10.1 Gradle Android Plugin version : 3.3.2 Proguard : 6.0.3 JDK - 1.9 Android Studio 3.3.2 When I try to build apk release version along with Proguard. I get the following error -
Caused by: java.io.IOException: Please correct the above warnings first.
at proguard.InputReader.execute(InputReader.java:149)
at proguard.ProGuard.readInput(ProGuard.java:255)
at proguard.ProGuard.execute(ProGuard.java:96)
......
Run Code Online (Sandbox Code Playgroud)
This seems to be caused due to this -
Warning: class [META-INF/versions/9/module-info.class] unexpectedly contains class [module-info]
Note: duplicate definition of program class [module-info]
Note: there were 20 duplicate class …Run Code Online (Sandbox Code Playgroud)