安卓:Volley NoClassDefFoundError

3

我们最近将应用程序更新为targetSDK 28。它一直运行良好,但是有一个用户在运行应用程序时不断崩溃。以下是我们在Google Play崩溃报告中看到的情况:

java.lang.NoClassDefFoundError: 
at com.android.volley.toolbox.HurlStack.performRequest (HurlStack.java:109)
at com.android.volley.toolbox.BasicNetwork.performRequest (BasicNetwork.java:97)
at com.android.volley.NetworkDispatcher.run (NetworkDispatcher.java:114)
Caused by: java.lang.ClassNotFoundException: 
at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:134)
at java.lang.ClassLoader.loadClass (ClassLoader.java:379)
at java.lang.ClassLoader.loadClass (ClassLoader.java:312)

这个问题发生在一部Sony Xperia手机上,其Android版本为9. 似乎与我们程序打开时所调用的一个请求(Volley)有关,但我们无法在内部复现该问题,因此很难准确地找出问题所在。

我该如何解决这个问题?

更新:好吧,这是一个胡乱猜测,但根据这篇文章的说法,我需要更新我的清单文件:

我们使用Google Play服务来获取位置信息,因此希望这可以解决这个问题。稍后会进行更新。


您的应用程序是否正在使用multidex? - clownba0t
不,我没有使用multidex。在尝试解决问题时,我看到有些人提到了它,但是我认为这不是问题的原因,因为堆栈跟踪中引用了volley。老实说,这是我第一次听说multidex(我还是Android的新手),所以我不知道它是否可能与此相关。此外,似乎除了这个用户之外,它并没有影响其他人。 - Zee
1个回答

5
解决方案:放置
< uses-library
android:name="org.apache.http.legacy"
android:required="false" />

在AndroidManifest文件中的Application对象中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接