こんにちは、株式会社Pentagonでアプリ開発をしている石渡港です。
android.content.ActivityNotFoundExceptionが起きたときの対処方法について簡単にまとめます。
目次
引用記事
https://note.com/embed/notes/nfc1364ea10ed
エラーログ
D/AndroidRuntime( 6770): Shutting down VM
E/AndroidRuntime( 6770): FATAL EXCEPTION: main
E/AndroidRuntime( 6770): Process: com.example.hoge, PID: 6770
E/AndroidRuntime( 6770): android.content.ActivityNotFoundException
E/AndroidRuntime( 6770): at net.openid.appauth.AuthorizationService.prepareAuthorizationRequestIntent(AuthorizationService.java:372)
E/AndroidRuntime( 6770): at net.openid.appauth.AuthorizationService.getAuthorizationRequestIntent(AuthorizationService.java:267)
E/AndroidRuntime( 6770): at net.openid.appauth.AuthorizationService.getAuthorizationRequestIntent(AuthorizationService.java:296)
E/AndroidRuntime( 6770): at io.crossingthestreams.flutterappauth.FlutterAppauthPlugin.performAuthorization(FlutterAppauthPlugin.java:315)
E/AndroidRuntime( 6770): at io.crossingthestreams.flutterappauth.FlutterAppauthPlugin.access$300(FlutterAppauthPlugin.java:40)
E/AndroidRuntime( 6770): at io.crossingthestreams.flutterappauth.FlutterAppauthPlugin$2.onFetchConfigurationCompleted(FlutterAppauthPlugin.java:232)
E/AndroidRuntime( 6770): at net.openid.appauth.AuthorizationServiceConfiguration$ConfigurationRetrievalAsyncTask.onPostExecute(AuthorizationServiceConfiguration.java:364)
E/AndroidRuntime( 6770): at net.openid.appauth.AuthorizationServiceConfiguration$ConfigurationRetrievalAsyncTask.onPostExecute(AuthorizationServiceConfiguration.java:305)
E/AndroidRuntime( 6770): at android.os.AsyncTask.finish(AsyncTask.java:771)
E/AndroidRuntime( 6770): at android.os.AsyncTask.access$900(AsyncTask.java:199)
E/AndroidRuntime( 6770): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:788)
E/AndroidRuntime( 6770): at android.os.Handler.dispatchMessage(Handler.java:106)
E/AndroidRuntime( 6770): at android.os.Looper.loop(Looper.java:223)
E/AndroidRuntime( 6770): at android.app.ActivityThread.main(ActivityThread.java:7656)
E/AndroidRuntime( 6770): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime( 6770): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
E/AndroidRuntime( 6770): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
環境
...
defaultConfig {
applicationId "com.example.hoge"
minSdkVersion 19
targetSdkVersion 30
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
manifestPlaceholders = [
'appAuthRedirectScheme': '${applicationId}',
]
}
...
画面遷移のエラーかと思いましたが、設定が抜けていたのが原因でした。
対処法
API 30(Android 11)以降の利用の際に起きるエラーでした。こちらに設定方法が載っており、下記のコードを埋め込むだけでエラーが発生しなくなりました。(ログインの際に外部のブラウザへ遷移していました。)
<queries>
<intent>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" />
</intent>
<intent>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.APP_BROWSER" />
<data android:scheme="https" />
</intent>
</queries>