2018年から、googleplayストアの審査が厳しくなりました。
具体的には、今開発しているアプリのAPI Levelを26にしてリリースする必要が
あり、最低保証の動きができるminSDKVersionに関してはAPI Levelを
21まで上げることが推奨されることになりました。
この変更により全てのサービスしているアプリが大幅なライブラリの見直しを
せざるをえなくなり、かなり骨が折れる作業を強いられてしまいました。
当然API Levelがあがれば機種と古くなったライブラリの相性・依存性も変わってくるので
コードを少しリファクタリングしただけでは動かずライブラリに合わせて
activity内のコードを全体的に見直すという荒療治も必要になってきます。
自分もこの変更により今使っているアプリを修正しているのですが、
やはり使えなくなったライブラリに手を焼きました。
例えば、ログインやカラム取得など非同期処理をするのに役に立つHttpClient
ですが、こちらはandroid6.0で完全削除されており、そうとは知らずにandroid9.0に対して
targetSdkVersionを設定したのですがログインをしたと同時に落ちてしまう
不具合にはまってしまいました。
こちらはHttpURLConnectionで代用できるのですが、今開発しているアプリは
複数のアクティビティでHttpClientを使っているのでさすがに全部書き換えると
ネットワーク側で不都合がおきないかと不安になります。
今のHttpClientを引き続き使う方法なないだろうかと考えていたら
マニフェストにレガシーの設定をすれば引き続きHttpClientを使うことが出来る
ことが判明。
さすがに数年前に出来上がったアプリに対しても救済措置は用意してくれたみたい。
書き方は、application内に以下のようにuseLibrearyを登録すればいいだけ。
以下の記述で大丈夫です。↓
</pre> <pre><uses-library android:name="org.apache.http.legacy" android:required="false" /></pre> <pre>
いつまでこれでサポートしてくれるかは分からないですが、現状大きな変更を
したくないのであればこちらがおすすめです。
参考サイト↓
HttpClientをtargetSdkVersion=28でも使う