标题翻译
NoClassDefFoundError: Failed resolution of: Lorg/apache/commons/logging/LogFactory
问题
错误:
E/AndroidRuntime: 致命异常:AsyncTask#1
进程:com.azail.cart.debug,PID:2403
java.lang.RuntimeException:执行doInBackground()时发生错误
at android.os.AsyncTask$3.done(AsyncTask.java:354)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
at java.util.concurrent.FutureTask.run(FutureTask.java:271)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.NoClassDefFoundError: 无法解析:Lorg/apache/commons/logging/LogFactory;
at org.apache.http.impl.client.AbstractHttpClient.<init>(AbstractHttpClient.java:159)
at org.apache.http.impl.client.DefaultHttpClient.<init>(DefaultHttpClient.java:178)
at com.azail.cart.connections.ConnectionClass.getRequest(ConnectionClass.java:240)
at com.azail.cart.connections.AppCacheConnections.getAllDetailsOfApp(AppCacheConnections.java:33)
at com.azail.cart.SplashActivity$1.doInBackground(SplashActivity.java:159)
at com.azail.cart.SplashActivity$1.doInBackground(SplashActivity.java:146)
at android.os.AsyncTask$2.call(AsyncTask.java:333)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.ClassNotFoundException: 在路径上找不到类“org.apache.commons.logging.LogFactory”:DexPathList[[zip文件“/data/app/com.azail.cart.debug-a_b6vv5iBpFhYtgRldECJg== /base.apk”],nativeLibraryDirectories = [/data/app/com.azail.cart.debug-a_b6vv5iBpFhYtgRldECJg==/lib/arm64,/system/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at org.apache.http.impl.client.AbstractHttpClient.<init>(AbstractHttpClient.java:159)
at org.apache.http.impl.client.DefaultHttpClient.<init>(DefaultHttpClient.java:178)
at com.azail.cart.connections.ConnectionClass.getRequest(ConnectionClass.java:240)
-
情况:
我进行了调试,并发现我在第一个 API 调用中使用了以下代码:HttpClient httpclient = new DefaultHttpClient(); 接下来会进入 AsyncTask,以下是 AsyncTask 的构造函数的代码: public AsyncTask(@Nullable Looper callbackLooper) { 的 catch 块 并显示上述错误。 但是,当我在其他 Android SDK 版本低于28(例如27)的设备上尝试时,一切正常,没有错误发生。 预先感谢您的帮助。
英文翻译
Error:
E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
Process: com.azail.cart.debug, PID: 2403
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:354)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
at java.util.concurrent.FutureTask.run(FutureTask.java:271)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/commons/logging/LogFactory;
at org.apache.http.impl.client.AbstractHttpClient.<init>(AbstractHttpClient.java:159)
at org.apache.http.impl.client.DefaultHttpClient.<init>(DefaultHttpClient.java:178)
at com.azail.cart.connections.ConnectionClass.getRequest(ConnectionClass.java:240)
at com.azail.cart.connections.AppCacheConnections.getAllDetailsOfApp(AppCacheConnections.java:33)
at com.azail.cart.SplashActivity$1.doInBackground(SplashActivity.java:159)
at com.azail.cart.SplashActivity$1.doInBackground(SplashActivity.java:146)
at android.os.AsyncTask$2.call(AsyncTask.java:333)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 
at java.lang.Thread.run(Thread.java:764) 
Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.commons.logging.LogFactory" on path: DexPathList[[zip file "/data/app/com.azail.cart.debug-a_b6vv5iBpFhYtgRldECJg==/base.apk"],nativeLibraryDirectories=[/data/app/com.azail.cart.debug-a_b6vv5iBpFhYtgRldECJg==/lib/arm64, /system/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at org.apache.http.impl.client.AbstractHttpClient.<init>(AbstractHttpClient.java:159) 
at org.apache.http.impl.client.DefaultHttpClient.<init>(DefaultHttpClient.java:178) 
at com.azail.cart.connections.ConnectionClass.getRequest(ConnectionClass.java:240) 
-
Situation :
So I debugged and found that the first api call im doing in which usingHttpClient httpclient = new DefaultHttpClient(); the next step its going to AsyncTask public AsyncTask(@Nullable Looper callbackLooper) { 's catch block and displaying above error but when i tried on other device with android sdk version less than 28 i.e 27 its working fine with no errors In advance Thanks for helping
答案1
得分: 0
你需要在清单文件中添加以下内容:
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
英文翻译
You have to add these lines in your manifest file
<uses-library android:name ="org.apache.http.legacy" android:required ="false"/>
专注分享java语言的经验与见解,让所有开发者获益!
评论