Асинхронная задача не поддерживается в Android 9.0 (Pie)

Я работал над своим кодом. он отлично работал на версии 8 (Oreo), после чего я получил обновление Android v 9.0 (Pie), и приложение внезапно перестало работать. после проверки я получил сообщение об ошибке в моей задаче Asyn с указанием следующей ошибки:

E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
Process: com.global.exch, PID: 25112
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:182)
    at org.apache.http.impl.client.DefaultHttpClient.<init>(DefaultHttpClient.java:150)
    at com.global.exch.Dataholder.getApi(Dataholder.java:100)
    at com.global.exch.MainActivity$QuotesData.doInBackground(MainActivity.java:391)
    at com.global.exch.MainActivity$QuotesData.doInBackground(MainActivity.java:386)
    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.global.exch-sEcnUuVsCYjXlnxJddVQAA==/base.apk", zip file "/data/app/com.global.exch-sEcnUuVsCYjXlnxJddVQAA==/split_lib_dependencies_apk.apk", zip file "/data/app/com.global.exch-sEcnUuVsCYjXlnxJddVQAA==/split_lib_resources_apk.apk", zip file "/data/app/com.global.exch-sEcnUuVsCYjXlnxJddVQAA==/split_lib_slice_0_apk.apk", zip file "/data/app/com.global.exch-sEcnUuVsCYjXlnxJddVQAA==/split_lib_slice_1_apk.apk", zip file "/data/app/com.global.exch-sEcnUuVsCYjXlnxJddVQAA==/split_lib_slice_2_apk.apk", zip file "/data/app/com.global.exch-sEcnUuVsCYjXlnxJddVQAA==/split_lib_slice_3_apk.apk", zip file "/data/app/com.global.exch-sEcnUuVsCYjXlnxJddVQAA==/split_lib_slice_4_apk.apk", zip file "/data/app/com.global.exch-sEcnUuVsCYjXlnxJddVQAA==/split_lib_slice_5_apk.apk", zip file "/data/app/com.global.exch-sEcnUuVsCYjXlnxJddVQAA==/split_lib_slice_6_apk.apk", zip file "/data/app/com.global.exch-sEcnUuVsCYjXlnxJddVQAA==/split_lib_slice_7_apk.apk", zip file "/data/app/com.global.exch-sEcnUuVsCYjXlnxJddVQAA==/split_lib_slice_8_apk.apk", zip file "/data/app/com.global.exch-sEcnUuVsCYjXlnxJddVQAA==/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.global.exch-sEcnUuVsCYjXlnxJddVQAA==/lib/arm64, /system/lib64, /system/vendor/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:182) 
    at org.apache.http.impl.client.DefaultHttpClient.<init>(DefaultHttpClient.java:150) 
    at com.global.exch.Dataholder.getApi(Dataholder.java:100) 
    at com.global.exch.MainActivity$QuotesData.doInBackground(MainActivity.java:391) 
    at com.global.exch.MainActivity$QuotesData.doInBackground(MainActivity.java:386) 
    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) 
    Suppressed: java.io.IOException: No original dex files found for dex location /data/app/com.global.exch-sEcnUuVsCYjXlnxJddVQAA==/split_lib_resources_apk.apk
    at dalvik.system.DexFile.openDexFileNative(Native Method)
    at dalvik.system.DexFile.openDexFile(DexFile.java:354)
    at dalvik.system.DexFile.<init>(DexFile.java:101)
    at dalvik.system.DexFile.<init>(DexFile.java:75)
    at dalvik.system.DexPathList.loadDexFile(DexPathList.java:394)
    at dalvik.system.DexPathList.makeDexElements(DexPathList.java:354)
    at dalvik.system.DexPathList.<init>(DexPathList.java:164)
    at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:74)
    at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:65)
    at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:64)
    at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:73)
    at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:88)
    at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:74)
E/AndroidRuntime:     at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:40)
    at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:718)
    at android.app.LoadedApk.getClassLoader(LoadedApk.java:801)
    at android.app.LoadedApk.getResources(LoadedApk.java:1023)
    at android.app.ContextImpl.createAppContext(ContextImpl.java:2345)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5780)
    at android.app.ActivityThread.access$1100(ActivityThread.java:200)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1660)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6762)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

Может ли кто-нибудь помочь мне, в чем именно проблема для этого, поскольку раньше он работал нормально. заранее спасибо.


person Rahul Gupta    schedule 01.01.2019    source источник
comment
отражение Java было ограничено в 9.0, пожалуйста, проверьте: developer.android.com /о/версии/круг/   -  person Atiq Ur Rehman    schedule 01.01.2019
comment
Ошибка ясна: java.lang.ClassNotFoundException: Didn't find class "org.apache.commons.logging.LogFactory" вы пытаетесь загрузить класс из журнала apache commons, который терпит неудачу. Проверьте свой код и больше не используйте классы из этой библиотеки.   -  person Robert    schedule 01.01.2019


Ответы (2)


Я также столкнулся с той же проблемой, но после добавления приведенного ниже кода в файл манифеста проблема была решена.

для справки вы также можете проверить этот URL-адрес: https://developer.android.com/about/versions/pie/android-9.0-changes-28

manifest.xml

<application
        ...
         android:usesCleartextTraffic="true"
       ...>

<uses-library
            android:name="org.apache.http.legacy"
            android:required="false"/>
</application>
person Fra Red    schedule 01.01.2019
comment
Спасибо .. Это сработало для меня .. Вы спасли мой день. Удачного кодирования.. @frared - person Rahul Gupta; 02.01.2019
comment
Ты спас мой день, чувак. Спасибо. :) - person Kemal Can ÖZÇELİK; 11.10.2019

Как обновить существующий проект в androidx.

не нужно добавлять дополнительные разрешения и код, зависимости,...

0.1): меняется на compileSdkVersion 29

0.2): Рефакторинг-> Миграция на androidX, затем

Просто добавьте следующий код в проект "ASDF":

1): добавьте каталог XML,

1.1): добавьте следующий код в XML, код ниже: т.е.

<application

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system"/>
</trust-anchors>
</base-config>
</network-security-config>

>

2): добавьте следующий код в файл манифеста:

2.1): в теге приложения (manifest->application) добавьте следующий код:

android:networkSecurityConfig="@xml/network_security_config"

2.2): вне тега приложения (manifest->application) добавьте следующий код:

<application>

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

</application>

Будьте счастливы и поделитесь своим мнением со мной Спасибо**

person M Azam Khan    schedule 15.10.2019