【问题标题】:AndroidX Jetifier Mockito java.lang.SecurityException: SHA-256 digest error for com/samsung/android/sdk/accessory/SAAgentV2.classAndroidX Jetifier Mockito java.lang.SecurityException:com/samsung/android/sdk/accessory/SAAgentV2.class 的 SHA-256 摘要错误
【发布时间】:2018-11-09 11:21:10
【问题描述】:

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

android.useAndroidX=true
android.enableJetifier=true

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

部分异常日志如下

原因:java.lang.SecurityException:SHA-256 摘要错误 com/samsung/android/sdk/accessory/SAAgentV2.class 在 sun.security.util.ManifestEntryVerifier.verify(ManifestEntryVerifier.java:218) 在 java.util.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。 有什么办法可以解决这个问题?

【问题讨论】:

    标签: java android mockito samsung-mobile-sdk android-jetifier


    【解决方案1】:

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

    jar xvf accessory-2.6.1..jar
    
    rm -rf META-INF
    
    jar cvf accessory-2.6.1-updated..jar *
    

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

    【讨论】:

    • 同样的事情发生在我身上......也将对此进行测试。它对你有用吗?
    【解决方案2】:

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

    【讨论】:

    • 与 Android Studio 无关。
    • 你能用另一种方式激活这个选项吗?我的团队面临同样的问题,尽管我们都在使用 Android Studio 进行本地构建。如果您正在做一些不同的事情,也许要确保 Instant Run 没有以其他方式激活。
    猜你喜欢
    • 2019-05-04
    • 2011-10-15
    • 1970-01-01
    • 2018-04-12
    • 2015-06-18
    • 2012-12-31
    • 2011-03-02
    • 2020-05-06
    • 1970-01-01
    相关资源
    最近更新 更多