数年ぶりにAndroidアプリのAdmobのアップデートを行いました。
https://developers.google.com/admob/android/app-open?hl=ja
上の手順に沿って実装を変更し、Gradleもアップデートしましたが、以下のような問題が。
色々なimportエラー
import android.support.v7.widget.RecyclerView; ↓ import androidx.recyclerview.widget.RecyclerView; <android.support.v4.widget.SwipeRefreshLayout> ↓ <androidx.swiperefreshlayout.widget.SwipeRefreshLayout> <android.support.design.widget.FloatingActionButton> ↓ <com.google.android.material.floatingactionbutton.FloatingActionButton> <android.support.design.widget.NavigationView> ↓ <com.google.android.material.navigation.NavigationView> <android.support.v4.widget.DrawerLayout> ↓ <androidx.drawerlayout.widget.DrawerLayout> <android.support.v7.widget.Toolbar> ↓ <androidx.appcompat.widget.Toolbar> <android.support.design.widget.AppBarLayout> ↓ <com.google.android.material.appbar.AppBarLayout> <android.support.v7.widget.ShareActionProvider> ↓ <androidx.appcompat.widget.ShareActionProvider> <android.support.design.widget.CoordinatorLayout> ↓ <androidx.coordinatorlayout.widget.CoordinatorLayout>
こういった感じに古いパッケージのパスを変更していきます。古いimport文は一旦削除して、エラー部分から自動修正した方が楽かもしれません。
【Android】java.lang.ClassNotFoundException: Didn’t find class “android.support.multidex.MultiDexApplication”エラー
android:name="android.support.multidex.MultiDexApplication" ↓ android:name="androidx.multidex.MultiDexApplication"
AndroidManifest.xmlを上のように変更します。
AndroidStudioでエミュレータを起動しようとするとemulator process for avd has terminatedと出て落ちる
エミュレータのSystemImageをx86からx86_64のものに変更します。
VolleyのonResponseが返ってこない
onErrorResponse(VolleyError error)のerror.networkResponseもresponse.dataもnullに。
アクセス先が非SSLの場合にAndroid9以降ではデフォルトではアクセス拒否します。
なので、AndroidManifest.xmlのapplicationタグに
android:usesCleartextTraffic="true"
を追加します。
もし個別にドメインを指定したい場合は、res/xml/network_security_config.xmlというファイルを作成し、そこに
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">ドメイン1</domain> <domain includeSubdomains="true">ドメイン2</domain> </domain-config> </network-security-config>
という風に書いた上で、AndroidManifest.xmlのapplicationタグに
android:networkSecurityConfig="@xml/network_security_config"
を追加します。
コメント