目的

Android Studioをアップグレードして、アプリを実行したら、

Cleartext HTTP traffic to XXX.XXX.XXX.XXX not permitted

と表示されて、HTTP通信ができなくなった。
Android9から対応が必要になったよう。AppleでいうATSのようなもの。
※もしかしたらAndroidでもATSというのかもしれませんが。。


対応

一番良いのは、HTTPS通信にすることです。

ただ、今回はHTTP通信を許可する設定としました。

まず、AndroidManifest.xmlandroid:networkSecurityConfig設定を追記。

<manifest ... >
    <application
        ...
        android:networkSecurityConfig="@xml/network_security_config"
        ...
    </application>
</manifest>



次に
res/xml/network_security_config.xmlというファイルを作成し、以下を追記。
xmlがない時はxmlから作成。

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">XXX.XXX.XXX.XXX</domain>
    </domain-config>
</network-security-config>

ドメインなども設定可能、複数設定可能。