Saya mendapat laporan dari pengguna dengan Android 8 bahwa aplikasi saya (yang menggunakan umpan back-end) tidak menampilkan konten. Setelah diselidiki, saya menemukan Pengecualian yang terjadi di Android 8:
08-29 12:03:11.246 11285-11285/ E/: [12:03:11.245, main]: Exception: IOException java.io.IOException: Cleartext HTTP traffic to * not permitted
at com.android.okhttp.HttpHandler$CleartextURLFilter.checkURLPermitted(HttpHandler.java:115)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:458)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:127)
at com.deiw.android.generic.tasks.AbstractHttpAsyncTask.doConnection(AbstractHttpAsyncTask.java:207)
at com.deiw.android.generic.tasks.AbstractHttpAsyncTask.extendedDoInBackground(AbstractHttpAsyncTask.java:102)
at com.deiw.android.generic.tasks.AbstractAsyncTask.doInBackground(AbstractAsyncTask.java:88)
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:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
(Saya telah menghapus nama paket, URL, dan kemungkinan pengidentifikasi lainnya)
Pada Android 7 dan yang lebih rendah semuanya berfungsi, saya tidak mengatur android:usesCleartextTraffic
di Manifest (dan mengaturnya agar true
tidak membantu, itu adalah nilai default), saya juga tidak menggunakan Informasi Keamanan Jaringan. Jika saya menelepon NetworkSecurityPolicy.getInstance().isCleartextTrafficPermitted()
, ia kembali false
untuk Android 8, true
untuk versi yang lebih lama, menggunakan file apk yang sama. Saya mencoba untuk menemukan beberapa menyebutkan hal ini di info Google tentang Android O, tetapi tidak berhasil.
cleartextTrafficPermitted="true"