[英]AndroidX Jetifier Mockito java.lang.SecurityException: SHA-256 digest error for com/samsung/android/sdk/accessory/SAAgentV2.class
I am migrating my app to use AndroidX .我正在迁移我的应用程序以使用AndroidX 。 I have enabled Jetifier in my gradle.properties file
我在我的 gradle.properties 文件中启用了 Jetifier
android.useAndroidX=true
android.enableJetifier=true
I use mockito in some tests.我在一些测试中使用了 mockito。 After migration a few tests fail where mockito is not able to mock classes which use Samsung accessory sdks version 2.6.1 .
迁移后,一些测试失败,mockito 无法模拟使用三星附件 sdks版本 2.6.1 的类。
Part of exception log is as under部分异常日志如下
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)
原因:java.lang.SecurityException:在 java.util 的 sun.security.util.ManifestEntryVerifier.verify(ManifestEntryVerifier.java:218) 的 com/samsung/android/sdk/accessory/SAAgentV2.class 的 SHA-256 摘要错误。 jar.JarVerifier.processEntry(JarVerifier.java:241) 在 java.util.jar.JarVerifier.update(JarVerifier.java:228) 在 java.util.jar.JarVerifier$VerifierStream.read(JarVerifier.java:482) 在 sun .misc.Resource.getBytes(Resource.java:124) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:462)
I believe this happens due to a signed jar being edited by jetifier.我相信这是由于 jetifier 正在编辑一个签名的 jar。 What can be done to overcome this issue?
可以做些什么来克服这个问题?
Couldn't find any answer for last 3 days, so I just removed META-INF from the samsung accessory jar.过去 3 天找不到任何答案,所以我刚刚从三星配件罐中删除了 META-INF。
jar xvf accessory-2.6.1..jar
rm -rf META-INF
jar cvf accessory-2.6.1-updated..jar *
Now will need to check if the accessory apis are working or not.现在需要检查附件 api 是否正常工作。
In Android Studio preferences, you can turn off Instant Run.在 Android Studio 偏好设置中,您可以关闭 Instant Run。 This seemed to fix the issue for our app's build without any other changes.
这似乎解决了我们应用程序构建的问题,无需任何其他更改。 It's in Preferences > Build, Execution, Environment > Instant Run.
它位于首选项 > 构建、执行、环境 > 即时运行中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.