Android uygulamalarınızda internetten veri çekmek için Retrofit ya da Volley kütüphaneleri kullandığınızda bu hatayı alabilirsiniz. Bu hatayı çözmek için 3 yöntem paylaşacağım.
1. Yöntem
İlk olarak URL’yi https
yerine http
olarak kullanabilirsiniz. Örneğin;
1 |
https://example.xyz/api -> http://example.xyz/api |
Bu yöntem pek güvenilir değildir. Diğer yöntemler işe yaramazsa son çare olarak kullanabilirsiniz.
2. Yöntem
AndroidManifest.xml
dosyasına gidin <application>
tagı içerisine aşağıdaki kodu ekleyin.
1 2 3 4 5 6 7 8 9 10 |
<?xml version="1.0" encoding="utf-8"?> <manifest> <uses-permission android:name="android.permission.INTERNET" /> <application ... ... android:usesCleartextTraffic="true" ... </application> </manifest> |
3. Yöntem
res
klasörünün içerisine xml
adında yeni bir klasör oluşturun. Daha sonra network_security_config.xml
dosyası oluşturun ve aşağıdaki kodu yapıştırın.
Klasörü oluşturmayı bilmiyorsanız yazının sonuna gidin.
1 2 3 4 5 6 7 |
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">example.xyz</domain> <domain includeSubdomains="true">api.example.xyz</domain> </domain-config> </network-security-config> |
Son olarak AndroidManifest.xml
dosyasına aşağıdaki kodu ekleyin.
1 2 3 4 5 6 7 8 9 10 |
<?xml version="1.0" encoding="utf-8"?> <manifest> <uses-permission android:name="android.permission.INTERNET" /> <application ... ... android:networkSecurityConfig="@xml/network_security_config" ... </application> </manifest> |
XML Klasörü Oluşturma
Sağ tık > New > Android Resource Directory
Resource type’ı xml olarak seçin.
Android ile ilgili yazılar için tıklayabilirsiniz.