openid / AppAuth-Android

Android client SDK for communicating with OAuth 2.0 and OpenID Connect providers.
https://openid.github.io/AppAuth-Android
Apache License 2.0
2.77k stars 873 forks source link

android.content.ActivityNotFoundException: When app opened #1052

Open dhruvsunking opened 3 months ago

dhruvsunking commented 3 months ago

Checklist:

Configuration

Issue Description

Get this exception on Crashlytics when app is opened

Caused by android.content.ActivityNotFoundException:
       at net.openid.appauth.AuthorizationService.prepareAuthorizationRequestIntent(AuthorizationService.java:555)
       at net.openid.appauth.AuthorizationService.getAuthorizationRequestIntent(AuthorizationService.java:390)
       at login.utils.LoginHelper.doAuth(LoginHelper.java:131)
       at login.utils.LoginHelper.startAuth(LoginHelper.java:112)
       at login.view.LoginHomeActivity.startAuth(LoginHomeActivity.kt:196)
       at login.view.LoginHomeActivity.initView(LoginHomeActivity.kt:118)
       at baseclass.BaseActivity.onCreate(BaseActivity.kt:42)
       at android.app.Activity.performCreate(Activity.java:8591)
       at android.app.Activity.performCreate(Activity.java:8570)
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1384)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4150)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4325)
       at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101)
       at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2574)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loopOnce(Looper.java:226)
       at android.os.Looper.loop(Looper.java:313)
       at android.app.ActivityThread.main(ActivityThread.java:8757)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
CompileConnected commented 3 months ago

can you explain more? is it minify? if does, you might need to exclude the app auth library to be obsfucate by gradle

dhruvsunking commented 3 months ago

Sure. no it is not minified. Sometimes it works fine but sometime suddenly (prepareAuthorizationRequestIntent, getAuthorizationRequestIntent) these two started throwing exception of activity not found.

amit517 commented 2 months ago

Hi from Android 13 we are required to add category with the intent. If didn't have that with your intent, can you add the following and check if that helps.

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) { authIntent.addCategory(Intent.CATEGORY_DEFAULT) authIntent.addCategory(Intent.CATEGORY_BROWSABLE) }

Update: This doesn't work. It's still crashing.

amit517 commented 2 months ago

My user scenario is similar like this old comment

Got several crash report of that. User mostly with Samsung. OS Version 13, 14. And chrome is installed. image

JaFiOriflame commented 1 month ago

We have the same problem. We've implemented it recently. Successfully tested on multiple devices. However, after we've released it we have a lot of ActivityNotFoundException. Mostly Samsung devices and Android 13. Unfortunately, I don't have any device with this problem :-(

image

guillaume-tgl commented 1 month ago

I also had several users reporting this problem, all with Samsung devices with Android 13. And the problem goes away after restarting the device. It seems like there's a bug with intent handling on this version of Samsung-modified Android version. Seems related to this SO question: https://stackoverflow.com/questions/78341069/packagemanager-queryintentactivities-returns-empty-on-random-devices

W-quan commented 12 hours ago
图片 图片 图片