AndroidX Jetifier Mockito java.lang.SecurityException: ошибка дайджеста SHA-256 для com/samsung/android/sdk/accessory/SAAgentV2.class

Я перевожу свое приложение для использования AndroidX. Я включил Jetifier в моем файле gradle.properties

android.useAndroidX=true
android.enableJetifier=true

Я использую mockito в некоторых тестах. После миграции несколько тестов завершаются неудачно, и mockito не может имитировать классы, которые используют аксессуар Samsung SDK версии 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) на солнце.misc.Resource.getBytes(Resource.java:124) в java.net.URLClassLoader.defineClass(URLClassLoader.java:462)

Я полагаю, что это происходит из-за того, что jtifier отредактировал подписанную банку. Что можно сделать, чтобы преодолеть эту проблему?

1 ответ

Решение

Не смог найти ответа за последние 3 дня, поэтому я просто удалил META-INF из банки с аксессуарами Samsung.

jar xvf accessory-2.6.1..jar

rm -rf META-INF

jar cvf accessory-2.6.1-updated..jar *

Теперь нужно будет проверить, работает ли аксессуар apis или нет.

В настройках Android Studio вы можете отключить Instant Run. Похоже, это решило проблему для сборки нашего приложения без каких-либо других изменений. Это в Настройки> Сборка, Выполнение, Среда> Мгновенный запуск.

Другие вопросы по тегам