AndroidX Jetifier Mockito java.lang.SecurityException:com/samsung/android/sdk/accessory/SAAgentV2 的 SHA-256 摘要错误。class

AndroidX Jetifier Mockito java.lang.SecurityException: SHA-256 digest error for com/samsung/android/sdk/accessory/SAAgentV2.class

我正在迁移我的应用程序以使用 AndroidX。我在 gradle.properties 文件

中启用了 Jetifier
android.useAndroidX=true
android.enableJetifier=true

我在一些测试中使用了 mockito。迁移后,一些测试失败,mockito 无法模拟使用 Samsung accessory sdks 版本 2.6.1 的 类。

部分异常日志如下

Caused by: java.lang.SecurityException: SHA-256 digest error for com/samsung/android/sdk/accessory/SAAgentV2.class at sun.security.util.ManifestEntryVerifier.verify(ManifestEntryVerifier.java:218) at java.util.jar.JarVerifier.processEntry(JarVerifier.java:241) at java.util.jar.JarVerifier.update(JarVerifier.java:228) at java.util.jar.JarVerifier$VerifierStream.read(JarVerifier.java:482) at sun.misc.Resource.getBytes(Resource.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java:462)

我相信这是由于 jetifier 正在编辑一个签名的 jar。 可以做些什么来克服这个问题?

过去 3 天找不到任何答案,所以我刚从三星配件罐中取出 META-INF。

jar xvf accessory-2.6.1..jar

rm -rf META-INF

jar cvf accessory-2.6.1-updated..jar *

现在需要检查附件 api 是否正常工作。

在 Android Studio 首选项中,您可以关闭 Instant 运行。这似乎在没有任何其他更改的情况下解决了我们应用程序构建的问题。它位于首选项 > 构建、执行、环境 > 即时 运行。