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. Похоже, это решило проблему для сборки нашего приложения без каких-либо других изменений. Это в Настройки> Сборка, Выполнение, Среда> Мгновенный запуск.