2

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

android.useAndroidX=true
android.enableJetifier=true

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

部分异常日志如下

原因: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)

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

4

2 回答 2

3

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

jar xvf accessory-2.6.1..jar

rm -rf META-INF

jar cvf accessory-2.6.1-updated..jar *

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

于 2018-11-11T22:21:38.393 回答
1

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

于 2019-04-29T16:52:08.547 回答