テクノモンキーのアプリ開発日記

テクノモンキーの開発ブログです。iOS、Android、Unity、Cocos2d-xなどアプリ開発関連のTipsやアプリ開発に役立つ情報を発信します。

【Android】HttpClientをAndroid9以上(targetSDK28)で使う方法

Google Playの規約変更により2018年11月からAndroidアプリをアップデートする場合、targetSDK28以上にしないといけなくなりました。

 

初版リリースから1年くらいのアプリであれば大した話ではないかと思うのですが、

仕事で運用しているアプリは5年前くらいに作られたアプリらしく、この影響をもろに受けかなり大変なことになりました。

 

今後の教訓として残しておきたいと思います。

 

targetSDK28に変更後、Android 9以上の端末で強制終了

 

アプリをtargetSDK28に設定してビルドしたところ、Android 9、10端末でアプリ起動時に強制終了するようになりました。

色々と調査したところ、このアプリではHttpClientを使っていることが判明しました。

Http ClientはAndroid6.0からサポート外になってしまっているらしく、Android 9以上ではHttp Clientライブラリごと削除されているらしいです。

 

このアプリは近々リニューアル予定だったこともあり、なるべく手をかけずにtargetSDK28対応を終わらせたいと思っていたところ、下記の記事を見つけました。

 

qiita.com

 

上記の記事を参考にAndroidManifest.xmlに以下を記述してみたところ、

<application>

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

 

 Android 9以上端末でアプリ起動時の強制終了が発生しなくなりました。

どうにか最低限の対応でどうにかなってよかったです。

それにしてもtargetSDK28以上はやばいですね...(敷居あげすぎ...)