生产Android应用程序显示原因:java.lang.NoClassDefFoundError错误

时间:2018-11-29 11:52:55

标签: java android android-studio google-play

生产应用程序如何向用户显示未发现类的错误,但是在模拟器上,它可以与Android 9.0正常运行。模拟器在编译或构建期间是否还会中断或显示错误?

java.lang.RuntimeException:

  

在android.os.AsyncTask $ 3.done(AsyncTask.java:354)在   java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)   在java.util.concurrent.FutureTask.setException(FutureTask.java:252)   在java.util.concurrent.FutureTask.run(FutureTask.java:271)在   android.os.AsyncTask $ SerialExecutor $ 1.run(AsyncTask.java:245)在   java.util.concurrent.ThreadPoolExecutor.runWorker   (ThreadPoolExecutor.java:1167)在   java.util.concurrent.ThreadPoolExecutor $ Worker.run   (ThreadPoolExecutor.java:641)在java.lang.Thread.run   (Thread.java:764)

原因:java.lang.NoClassDefFoundError:

  org.apache.http.impl.client.AbstractHttpClient中的

。   (AbstractHttpClient.java:182)在   org.apache.http.impl.client.DefaultHttpClient。   (DefaultHttpClient.java:150)在   com.exposure.utilities.RestClient.executeRequest(RestClient.java:162)   在com.exposure.utilities.RestClient.Execute(RestClient.java:127)
  在com.exposure.utilities.Utility.getData(Utility.java:162)处   com.exposure.utilities.DataTask.doInBackground(DataTask.java:26)在   com.exposure.utilities.DataTask.doInBackground(DataTask.java:9)位于   android.os.AsyncTask $ 2.call(AsyncTask.java:333)在   java.util.concurrent.FutureTask.run(FutureTask.java:266)

原因:java.lang.ClassNotFoundException:

  

在dalvik.system.BaseDexClassLoader.findClass   (BaseDexClassLoader.java:134)在java.lang.ClassLoader.loadClass   (ClassLoader.java:379)在java.lang.ClassLoader.loadClass   (ClassLoader.java:312)

1 个答案:

答案 0 :(得分:2)

这似乎是由于不赞成使用HTTP客户端。将以下代码添加到清单应用程序标签。

<uses-library android:name="org.apache.http.legacy" android:required="false"/>

对于Android Pie,他们已从Andorid Pie开始弃用了对Apache HTTP客户端的支持,请查看更改日志以获取参考https://developer.android.com/about/versions/pie/android-9.0-changes-28#apache-p