Skip to content

java.lang.RuntimeException: Unable to resume activity {com.xx.xx/com.facebook.FacebookActivity}: android.content.ActivityNotFoundException #1398

Description

@lovebluedan

Checklist before submitting a bug report

Java version

21

Android version

Android 11

Android SDK version

18.0.3

Installation platform & version

Gradle

Package

Login

Goals

Device information

From Firebase Crashlytics:

  • Brand: OnePlus
  • Model: OnePlus8Pro
  • OS: Android 11
  • Rooted: No
  • Orientation: Portrait
  • App version: 5.12.1 (182)
  • Crash date: Jun 14, 2026, 1:30:12 PM
  • Free RAM: 2.29 GiB
  • Free disk: 2.66 GiB

Facebook Login should not crash the app. If native Facebook app login is unavailable or invalid, the SDK should fail gracefully or fall back to Custom Tab / WebView login.

Expected results

When calling Facebook Login, the SDK should either:

  1. launch the native Facebook app login successfully, or
  2. fall back to web login, or
  3. return onCancel / onError through FacebookCallback.

It should not throw a fatal exception from FacebookActivity lifecycle.

Actual results

The app crashes with ActivityNotFoundException while FacebookActivity is resuming.

The SDK tries to launch:

com.facebook.katana/com.facebook.katana.ProxyAuth

but Android reports that the explicit activity class cannot be found.

Crash stack:

Fatal Exception: java.lang.RuntimeException:
Unable to resume activity {com.xx.xx/com.facebook.FacebookActivity}:
android.content.ActivityNotFoundException:
Unable to find explicit activity class
{com.facebook.katana/com.facebook.katana.ProxyAuth};
have you declared this activity in your AndroidManifest.xml,
or does your intent not match its declared <intent-filter>?

    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4962)
    at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4995)
    at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:57)
    at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
    at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:180)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:98)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2443)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loopOnce(Looper.java:205)
    at android.os.Looper.loop(Looper.java:294)
    at android.app.ActivityThread.main(ActivityThread.java:8177)

Caused by android.content.ActivityNotFoundException:
Unable to find explicit activity class
{com.facebook.katana/com.facebook.katana.ProxyAuth};
have you declared this activity in your AndroidManifest.xml,
or does your intent not match its declared <intent-filter>?

    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2461)
    at android.app.Instrumentation.execStartActivity(Instrumentation.java:2103)
    at android.app.Activity.startActivityForResult(Activity.java:5589)
    at androidx.activity.ComponentActivity.startActivityForResult(SourceFile:2)
    at com.facebook.login.NativeAppLoginMethodHandler.tryIntent(...)
    at com.facebook.login.KatanaProxyLoginMethodHandler.tryAuthorize(...)
    at com.facebook.login.LoginClient.tryCurrentHandler(...)
    at com.facebook.login.LoginFragment.onResume(...)
    at androidx.fragment.app.FragmentActivity.onPostResume(...)
    at android.app.Activity.performResume(Activity.java:8770)
    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4952)

Steps to reproduce

We cannot reproduce it locally yet. It was reported by Firebase Crashlytics from a real user device.

Code samples & details

The user likely tapped Facebook Login. Our login code uses the Activity Result API:

private lateinit var facebookSignInLauncher: ActivityResultLauncher<Collection<String>>

facebookSignInLauncher =
    registerForActivityResult(
        LoginManager.getInstance().createLogInActivityResultContract()
    ) {
        LoginManager.getInstance().onActivityResult(
            it.resultCode,
            it.data,
            object : FacebookCallback<LoginResult> {
                override fun onCancel() {
                    // login cancelled
                }

                override fun onError(error: FacebookException) {
                    // login error
                }

                override fun onSuccess(result: LoginResult) {
                    val token = result.accessToken.token
                    // send token to backend
                }
            }
        )
    }

// On Facebook login button click:
LoginManager.getInstance().logOut()
facebookSignInLauncher.launch(emptyList())


### AndroidManifest.xml


<queries>
    <package android:name="com.facebook.katana" />
</queries>

<application>
    <activity
        android:name="com.facebook.FacebookActivity"
        android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" />

    <activity
        android:name="com.facebook.CustomTabActivity"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data android:scheme="@string/fb_login_protocol_scheme" />
        </intent-filter>
    </activity>

    <meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/facebook_app_id" />

    <meta-data
        android:name="com.facebook.sdk.ClientToken"
        android:value="@string/facebook_client_token" />
</application>

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions