Target API level 28にしたところ、Essential Phoneで2つのエラーに遭遇した。
Google Mapが落ちる
NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion; inside of com.google.android.gms
対応
AndroidManifest.xmlに以下の記述を追加する。
<uses-library android:name="org.apache.http.legacy" android:required="false" />
参考
Project Configuration | Maps SDK for Android | Google Developers
HTTP通信がエラーになる
Httpはデフォルトで無効化されたため、HTTP通信が必要な場合は回避コードを記述する必要がある。
対応
res/xml/network_security_config.xml
を新たに作成し、HTTPを有効化したいドメインを記述し、 cleartextTrafficPermitted="true"
とする
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">example.com</domain> </domain-config> </network-security-config>
AndroidManifest.xmlに追記する
<application android:networkSecurityConfig="@xml/network_security_config">
参考
Android 8: Cleartext HTTP traffic not permitted - Stack Overflow