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

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

【Android】java.lang.SecurityException: Permission Denial: starting Intent の対処法

https://cdn-ak.f.st-hatena.com/images/fotolife/h/hmbdyh/20170110/20170110101721.jpg

最近、仕事で広告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