Reputation: 584
I have Upgraded the Android application from 26 to 28 SDK.
It works well in 23 - 27 version.
But the new version will crash in SDK 28.
this is the exception stack:
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/http/params/BasicHttpParams;
at com.deepnet.andmob5.util.UtilsYang.getNewHttpClient(UtilsYang.java:163)
at com.deepnet.andmob5.util.UtilsYang.makeRequest(UtilsYang.java:103)
at com.deepnet.andmob5.util.UtilsYang.sendHTTPPost(UtilsYang.java:426)
at com.deepnet.andmob5.threads.MyAsyncTask.doInBackground(MyAsyncTask.java:52)
at com.deepnet.andmob5.threads.MyAsyncTask.doInBackground(MyAsyncTask.java:22)
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.http.params.BasicHttpParams" on path: DexPathList[[zip file "/data/app/com.deepnet.andmob5-lZYwyb5I5Tn71C5uAAbAOA==/base.apk"],nativeLibraryDirectories=[/data/app/com.deepnet.andmob5-lZYwyb5I5Tn71C5uAAbAOA==/lib/x86, /data/app/com.deepnet.andmob5-lZYwyb5I5Tn71C5uAAbAOA==/base.apk!/lib/x86, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
Please help me.
Upvotes: 7
Views: 5644
Reputation: 368
You can add the following line in your module's build.gradle:
useLibrary 'org.apache.http.legacy'
And don't forget to upgrade the minSdkVersion to 23 as it's indicated in the following link:
https://developer.android.com/about/versions/pie/android-9.0-changes-28#apache-p
Upvotes: 0
Reputation: 1118
If you are using the Apache HTTP client, add the following in AndroidManifest.xml: refer this
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
Upvotes: 14