くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

【Android】アドフリくんをAndroid9.0を使うための追加設定

Androidアプリの広告表示にアドフリくんを使っているけど、Android9.0にしたらクラッシュした。。
Android9.0でいろいろ変わったらしいので、そのときの備忘録。

変更点は以下でアナウンスされている。

動作の変更点: API レベル 28+ をターゲットとするアプリ  |  Android Developers

apacheライブラリが足りなくてクラッシュ

Android9.0で「Apache HTTP クライアントのサポート終了」したらしい。。 アドフリくんを使っているようで、以下のようなエラーが。。

Caused by: java.lang.NoClassDefFoundError: Failed resolution of: 
Lorg/apache/http/impl/client/DefaultHttpClient; at 

なので、利用することをAndroidManifest.xmlに追記する。

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

Foreground Serviceを使う場合はパーミッションが必要に

Android8.0の変更だが、開発中のアプリで未対応だったので合わせて追記。
Context.startForegroundService()などを利用してServiceをフォアグラウンドで実行する場合、
AndroidManifest.xmlパーミッションが必要になった。

<manifest>
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
</manifest>

以上!!

参考にしたサイト様