Status Update
Comments
il...@google.com <il...@google.com> #2
Do you have a sample project that reproduces your issue?
ma...@cyberagent.co.jp <ma...@cyberagent.co.jp> #3
Hi! I attached the sample project.
Run:
adb shell am start -W -a android.intent.action.VIEW -d "example://gizmos/"
Then App should crash with:
12-08 12:56:01.489 12861 12861 E AndroidRuntime: FATAL EXCEPTION: main
12-08 12:56:01.489 12861 12861 E AndroidRuntime: Process: com.example.deeplinkcrash, PID: 12861
12-08 12:56:01.489 12861 12861 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.deeplinkcrash/com.example.deeplinkcrash.MainActivity}: android.view.InflateException: Binary XML file line #10 in com.example.deeplinkcrash:layout/activity_main: Binary XML file line #10 in com.example.deeplinkcrash:layout/activity_main: Error inflating class androidx.fragment.app.FragmentContainerView
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3449)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at android.os.Looper.loop(Looper.java:223)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7656)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: Caused by: android.view.InflateException: Binary XML file line #10 in com.example.deeplinkcrash:layout/activity_main: Binary XML file line #10 in com.example.deeplinkcrash:layout/activity_main: Error inflating class androidx.fragment.app.FragmentContainerView
12-08 12:56:01.489 12861 12861 E AndroidRuntime: Caused by: android.view.InflateException: Binary XML file line #10 in com.example.deeplinkcrash:layout/activity_main: Error inflating class androidx.fragment.app.FragmentContainerView
12-08 12:56:01.489 12861 12861 E AndroidRuntime: Caused by: android.content.res.Resources$NotFoundException: Unable to find resource ID #0x0
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at android.content.res.ResourcesImpl.getResourceTypeName(ResourcesImpl.java:292)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at android.content.res.Resources.getResourceTypeName(Resources.java:2215)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at androidx.navigation.ActivityNavigator.navigate(ActivityNavigator.java:200)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at androidx.navigation.ActivityNavigator.navigate(ActivityNavigator.java:44)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at androidx.navigation.NavController.navigate(NavController.java:1057)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at androidx.navigation.NavController.handleDeepLink(NavController.java:732)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at androidx.navigation.NavController.onGraphCreated(NavController.java:633)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at androidx.navigation.NavController.setGraph(NavController.java:590)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at androidx.navigation.NavController.setGraph(NavController.java:555)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at androidx.navigation.NavController.setGraph(NavController.java:537)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at androidx.navigation.fragment.NavHostFragment.onCreate(NavHostFragment.java:248)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at androidx.fragment.app.Fragment.performCreate(Fragment.java:2684)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at androidx.fragment.app.FragmentStateManager.create(FragmentStateManager.java:280)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1175)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at androidx.fragment.app.FragmentManager.addAddedFragments(FragmentManager.java:2224)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1997)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1953)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at androidx.fragment.app.FragmentManager.execSingleAction(FragmentManager.java:1818)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at androidx.fragment.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:303)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at androidx.fragment.app.FragmentContainerView.<init>(FragmentContainerView.java:166)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at androidx.fragment.app.FragmentLayoutInflaterFactory.onCreateView(FragmentLayoutInflaterFactory.java:51)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at androidx.fragment.app.FragmentController.onCreateView(FragmentController.java:135)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at androidx.fragment.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:356)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at androidx.fragment.app.FragmentActivity.onCreateView(FragmentActivity.java:335)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at android.view.LayoutInflater.tryCreateView(LayoutInflater.java:1067)
12-08 12:56:01.489 12861 12861 E AndroidRuntime: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:995)
12-08 12:56:01.491 12861 12861 E AndroidRuntime: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959)
12-08 12:56:01.491 12861 12861 E AndroidRuntime: at android.view.LayoutInflater.rInflate(LayoutInflater.java:1121)
12-08 12:56:01.491 12861 12861 E AndroidRuntime: at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
12-08 12:56:01.491 12861 12861 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:680)
12-08 12:56:01.491 12861 12861 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:532)
12-08 12:56:01.491 12861 12861 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:479)
12-08 12:56:01.491 12861 12861 E AndroidRuntime: at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:696)
12-08 12:56:01.491 12861 12861 E AndroidRuntime: at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:170)
12-08 12:56:01.491 12861 12861 E AndroidRuntime: at com.example.deeplinkcrash.MainActivity.onCreate(MainActivity.kt:9)
12-08 12:56:01.491 12861 12861 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:8000)
12-08 12:56:01.491 12861 12861 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:7984)
12-08 12:56:01.491 12861 12861 E AndroidRuntime: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
12-08 12:56:01.491 12861 12861 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
12-08 12:56:01.491 12861 12861 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
12-08 12:56:01.491 12861 12861 E AndroidRuntime: at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
12-08 12:56:01.491 12861 12861 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
12-08 12:56:01.491 12861 12861 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
12-08 12:56:01.491 12861 12861 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
12-08 12:56:01.491 12861 12861 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106)
12-08 12:56:01.491 12861 12861 E AndroidRuntime: at android.os.Looper.loop(Looper.java:223)
12-08 12:56:01.491 12861 12861 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7656)
12-08 12:56:01.491 12861 12861 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
12-08 12:56:01.491 12861 12861 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
12-08 12:56:01.491 12861 12861 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: FATAL EXCEPTION: main
12-08 12:56:12.025 12983 12983 E AndroidRuntime: Process: com.example.deeplinkcrash, PID: 12983
12-08 12:56:12.025 12983 12983 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.deeplinkcrash/com.example.deeplinkcrash.MainActivity}: android.view.InflateException: Binary XML file line #10 in com.example.deeplinkcrash:layout/activity_main: Binary XML file line #10 in com.example.deeplinkcrash:layout/activity_main: Error inflating class androidx.fragment.app.FragmentContainerView
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3449)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at android.os.Looper.loop(Looper.java:223)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7656)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: Caused by: android.view.InflateException: Binary XML file line #10 in com.example.deeplinkcrash:layout/activity_main: Binary XML file line #10 in com.example.deeplinkcrash:layout/activity_main: Error inflating class androidx.fragment.app.FragmentContainerView
12-08 12:56:12.025 12983 12983 E AndroidRuntime: Caused by: android.view.InflateException: Binary XML file line #10 in com.example.deeplinkcrash:layout/activity_main: Error inflating class androidx.fragment.app.FragmentContainerView
12-08 12:56:12.025 12983 12983 E AndroidRuntime: Caused by: android.content.res.Resources$NotFoundException: Unable to find resource ID #0x0
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at android.content.res.ResourcesImpl.getResourceTypeName(ResourcesImpl.java:292)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at android.content.res.Resources.getResourceTypeName(Resources.java:2215)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at androidx.navigation.ActivityNavigator.navigate(ActivityNavigator.java:200)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at androidx.navigation.ActivityNavigator.navigate(ActivityNavigator.java:44)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at androidx.navigation.NavController.navigate(NavController.java:1057)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at androidx.navigation.NavController.handleDeepLink(NavController.java:732)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at androidx.navigation.NavController.onGraphCreated(NavController.java:633)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at androidx.navigation.NavController.setGraph(NavController.java:590)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at androidx.navigation.NavController.setGraph(NavController.java:555)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at androidx.navigation.NavController.setGraph(NavController.java:537)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at androidx.navigation.fragment.NavHostFragment.onCreate(NavHostFragment.java:248)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at androidx.fragment.app.Fragment.performCreate(Fragment.java:2684)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at androidx.fragment.app.FragmentStateManager.create(FragmentStateManager.java:280)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1175)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at androidx.fragment.app.FragmentManager.addAddedFragments(FragmentManager.java:2224)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1997)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1953)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at androidx.fragment.app.FragmentManager.execSingleAction(FragmentManager.java:1818)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at androidx.fragment.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:303)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at androidx.fragment.app.FragmentContainerView.<init>(FragmentContainerView.java:166)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at androidx.fragment.app.FragmentLayoutInflaterFactory.onCreateView(FragmentLayoutInflaterFactory.java:51)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at androidx.fragment.app.FragmentController.onCreateView(FragmentController.java:135)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at androidx.fragment.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:356)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at androidx.fragment.app.FragmentActivity.onCreateView(FragmentActivity.java:335)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at android.view.LayoutInflater.tryCreateView(LayoutInflater.java:1067)
12-08 12:56:12.025 12983 12983 E AndroidRuntime: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:995)
12-08 12:56:12.026 12983 12983 E AndroidRuntime: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959)
12-08 12:56:12.026 12983 12983 E AndroidRuntime: at android.view.LayoutInflater.rInflate(LayoutInflater.java:1121)
12-08 12:56:12.026 12983 12983 E AndroidRuntime: at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
12-08 12:56:12.026 12983 12983 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:680)
12-08 12:56:12.026 12983 12983 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:532)
12-08 12:56:12.026 12983 12983 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:479)
12-08 12:56:12.026 12983 12983 E AndroidRuntime: at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:696)
12-08 12:56:12.026 12983 12983 E AndroidRuntime: at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:170)
12-08 12:56:12.026 12983 12983 E AndroidRuntime: at com.example.deeplinkcrash.MainActivity.onCreate(MainActivity.kt:9)
12-08 12:56:12.026 12983 12983 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:8000)
12-08 12:56:12.026 12983 12983 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:7984)
12-08 12:56:12.026 12983 12983 E AndroidRuntime: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
12-08 12:56:12.026 12983 12983 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
12-08 12:56:12.026 12983 12983 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
12-08 12:56:12.026 12983 12983 E AndroidRuntime: at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
12-08 12:56:12.026 12983 12983 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
12-08 12:56:12.026 12983 12983 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
12-08 12:56:12.026 12983 12983 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
12-08 12:56:12.026 12983 12983 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106)
12-08 12:56:12.026 12983 12983 E AndroidRuntime: at android.os.Looper.loop(Looper.java:223)
12-08 12:56:12.026 12983 12983 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7656)
12-08 12:56:12.026 12983 12983 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
12-08 12:56:12.026 12983 12983 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
12-08 12:56:12.026 12983 12983 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
ma...@cyberagent.co.jp <ma...@cyberagent.co.jp> #4
Navigation 2.3.1 has no problem
il...@google.com <il...@google.com> #5
Thanks, that's really helpful. We'll take a look at solving the root issue, but note that it is never the right approach to attach a <deeplink>
to an <activity>
destination as that will never give you the right behavior when using an <intent-filter>
or by adding the <deeplink>
to the start destination of a nav host in that second activity).
be...@gmail.com <be...@gmail.com> #6
il...@google.com <il...@google.com> #7
Yep, the fix is easy. I'm just mentioning that you should never be running into this case since you should never be attaching a <deepLink>
to an <activity>
destination, thus avoiding the issue in the first place.
jb...@google.com <jb...@google.com> #8
This has been fixed internally and will be available in the Navigation 2.3.3
release.
Description
Component used: Navigation Version used: 2.3.2 Devices/Android versions reproduced on: 10
If this is a bug in the library, we would appreciate if you could attach:
Launch app from deeplink (destination is an Activity), then app crash with:
Related code:https://cs.android.com/androidx/platform/frameworks/support/+/androidx-master-dev:navigation/navigation-runtime/src/main/java/androidx/navigation/ActivityNavigator.java;drc=7ec8be5ebd967ca6fd6953d5235992ddfd7a1e97;l=200
After debugging we found that
enterAnim == 0
which caused the crash.