#android #time #jodatime #android-5.0-lollipop
#Android #время #jodatime #android-5.0-lollipop
Вопрос:
Приложение, используемое для работы на всех устройствах, включая (nexus 5 и nexus 7). Запуск того же приложения на Android L preview, сбой приложения.
Я проводил отладку, и исключение было создано с помощью конструктора DateTime.
public static String[] getAge(Context context, Date date) {
DateTime time = new DateTime(date);
DateTime nowTime = new DateTime(new Date());
}
Журнал:
java.lang.SecurityException: Incorrect signature
at org.apache.harmony.security.utils.JarUtils.verifySignature(JarUtils.java:223)
at java.util.jar.JarVerifier.verifyCertificate(JarVerifier.java:294)
at java.util.jar.JarVerifier.readCertificates(JarVerifier.java:268)
at java.util.jar.JarFile.getInputStream(JarFile.java:380)
at libcore.net.url.JarURLConnectionImpl.getInputStream(JarURLConnectionImpl.java:222)
at java.net.URL.openStream(URL.java:470)
at java.lang.ClassLoader.getResourceAsStream(ClassLoader.java:444)
at org.joda.time.tz.ZoneInfoProvider.openResource(ZoneInfoProvider.java:202)
at org.joda.time.tz.ZoneInfoProvider.<init>(ZoneInfoProvider.java:123)
at org.joda.time.tz.ZoneInfoProvider.<init>(ZoneInfoProvider.java:82)
at org.joda.time.DateTimeZone.getDefaultProvider(DateTimeZone.java:490)
at org.joda.time.DateTimeZone.setProvider0(DateTimeZone.java:444)
at org.joda.time.DateTimeZone.<clinit>(DateTimeZone.java:116)
at org.joda.time.DateTimeUtils.<clinit>(DateTimeUtils.java:48)
at org.joda.time.DateTimeUtils.getChronology(DateTimeUtils.java:282)
at org.joda.time.convert.AbstractConverter.getChronology(AbstractConverter.java:82)
at org.joda.time.base.BaseDateTime.<init>(BaseDateTime.java:170)
at org.joda.time.DateTime.<init>(DateTime.java:241)
Есть идеи по поводу?
Комментарии:
1. Похоже, что Joda Time пытается прочитать некоторые файлы из своего собственного JAR. Если одно из ваших аппаратных устройств работает под управлением Android 4.4, вы можете включить на нем среду выполнения ART в настройках разработчика и посмотреть, возникнет ли у вас такая же проблема. Если это так, то проблема, скорее всего, связана со средой выполнения ART.
2. Похоже, что JodaTime может пытаться вызвать теперь закрытый API? Согласно android.googlesource.com/platform/libcore / / … VerifySignature проверяет подпись приложения, возможно, чтобы сверить ее с системной подписью. Хотя это просто дикий выстрел.
3. Включение среды выполнения ART на Android 4.4.4 работает, и исключение не появилось… Все еще на Android-L
4. Я не смог решить эту проблему, поэтому я предполагаю, что эта библиотека не поддерживается Android-L. Вместо этого решения с использованием класса Date исключения нет.