Android版本4.3中的android java.util.Objects异常

问题描述 投票:0回答:2

我在设备(Android 4.3)中运行我的应用程序时遇到问题,我收到此错误:E / AndroidRuntime:FATAL EXCEPTION:main java.lang.NoClassDefFoundError:java.util.Objects

我知道抛出异常是因为java.util.Objects的所有静态方法都可以在API 19(Android 4.4。+)之上使用,因此Android版本中不存在该方法,并且抛出了NoClassDefFoundError。

但我还需要我的应用程序与4.3版兼容,我该如何解决?

跟踪:java.lang.NoClassDefFoundError:okhttp3.CertificatePinner.withCertificateChainCleaner(CertificatePinner.java:231)中的java.util.Objects,位于okhttp3.OkHttpClient。(OkHttpClient.java:238),位于okhttp3.OkHttpClient $ Builder.build(OkHttpClient.java) :1015)

java android exception noclassdeffounderror
2个回答
1
投票

您可能正在使用OkHttp 3.13.x或更高版本3.13.0是OkHttp的第一个版本,它将最低要求提升到Android 5+ API 21

请尝试3.12.3版本,因为它应该支持Android 2.3+(API 9+)的设备

资料来源:https://github.com/square/okhttp/blob/master/CHANGELOG.md


0
投票

不要使用这些电话。在您自己的班级中提供您自己的版本。在添加之前,您无法在OS的某个版本上使用该功能。没有办法做到这一点。但是您可以从OpenJDK中找到这些函数的开源实现,并将该类放入您的应用程序并在那里使用它。

但你为什么要花费精力支持4.3?只有.4%的设备使用的是v 4.3。来源 - 谷歌:https://developer.android.com/about/dashboards/此时支持的努力和成本并不值得。 19种联合收割机之前的所有设备仅占所有使用设备的3.5%,并且这些设备在地理位置上非常集中 - 除非您的主要受众位于非洲或亚洲的贫困地区,否则您只会看到其中的一小部分。可能你已经花了更多的钱(作为时间)来研究这个问题,而不是你将获得收入。

哦,请注意这些数字是从10月份开始的 - 现在它会更小。

© www.soinside.com 2019 - 2024. All rights reserved.