最近、仕事で広告SDK「AppLovin」の組み込みを実装したのですが、途中で「SecurityException」のエラーが発生してビルドできない状態になりました。
今回はその対処法についてです。
AppLovinのSDK導入時に「java.lang.SecurityException」のエラー発生
AppLovinのSDKをマニュアル通りAndroidに組み込んだところ、以下のようなエラーが発生しました。
Starting: Intent { cmp=jp.co.puzzle.NPK/com.applovin.adview.AppLovinInterstitialActivity }
java.lang.SecurityException: Permission Denial: starting Intent { flg=0x10000000 cmp=jp.co.test/com.applovin.adview.AppLovinInterstitialActivity } from null not exported from uid 999
at android.os.Parcel.readException(Parcel.java:1684)
at android.os.Parcel.readException(Parcel.java:1637)
at android.app.ActivityManagerProxy.startActivityAsUser(ActivityManagerNative.java:3172)
at com.android.commands.am.Am.runStart(Am.java:635)
at com.android.commands.am.Am.onRun(Am.java:388)
at com.android.internal.os.BaseCommand.run(BaseCommand.java:51)
at com.android.commands.am.Am.main(Am.java:121)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:262)
SecurityExceptionなので、「AppLovinInterstitialActivity」で何かしらのセキュリティーエラーが発生している模様。
「AppLovinInterstitialActivity」はAndroidManifest.xmlで宣言しているくらいでアプリ内では使用していない状況でした。
//AndroidManifest.xml <activity android:name="com.applovin.adview.AppLovinInterstitialActivity" android:configChanges="orientation|screenSize"/>
「java.lang.SecurityException: Permission Denial: starting Intent 」の対処法
調査した結果、今回のエラーは「Androidのコンポーネントを公開していないために発生するエラー」のようです。
(Androidのコンポーネントについてはこちらを参照。)
AndroidManifest.xmlでエラーが発生しているActivityに「 android:exported="true"」を追加する事で解決しました。
//AndroidManifest.xml <activity android:name="com.applovin.adview.AppLovinInterstitialActivity" android:configChanges="orientation|screenSize" android:exported="true"/>
こちらの記事が参考になりました↓
qiita.com