From Play store analytics: com.gbros.tabslite.SongVersionFragment.onCreate
java.lang.RuntimeException:
at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3483)
at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3635)
at android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:85)
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:2083)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loop (Looper.java:223)
at android.app.ActivityThread.main (ActivityThread.java:7703)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1084)
Caused by: java.lang.ClassCastException:
at com.gbros.tabslite.SongVersionFragment.onCreate (SongVersionFragment.kt:44)
at androidx.fragment.app.Fragment.performCreate (Fragment.java:2981)
at androidx.fragment.app.FragmentStateManager.create (FragmentStateManager.java:474)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState (FragmentStateManager.java:257)
at androidx.fragment.app.FragmentStore.moveToExpectedState (FragmentStore.java:121)
at androidx.fragment.app.FragmentManager.moveToState (FragmentManager.java:1374)
at androidx.fragment.app.FragmentManager.dispatchStateChange (FragmentManager.java:2841)
at androidx.fragment.app.FragmentManager.dispatchCreate (FragmentManager.java:2773)
at androidx.fragment.app.Fragment.restoreChildFragmentState (Fragment.java:1935)
at androidx.fragment.app.Fragment.onCreate (Fragment.java:1911)
at androidx.navigation.fragment.NavHostFragment.onCreate (NavHostFragment.kt:164)
at androidx.fragment.app.Fragment.performCreate (Fragment.java:2981)
at androidx.fragment.app.FragmentStateManager.create (FragmentStateManager.java:474)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState (FragmentStateManager.java:257)
at androidx.fragment.app.FragmentStore.moveToExpectedState (FragmentStore.java:113)
at androidx.fragment.app.FragmentManager.moveToState (FragmentManager.java:1374)
at androidx.fragment.app.FragmentManager.dispatchStateChange (FragmentManager.java:2841)
at androidx.fragment.app.FragmentManager.dispatchCreate (FragmentManager.java:2773)
at androidx.fragment.app.FragmentController.dispatchCreate (FragmentController.java:251)
at androidx.fragment.app.FragmentActivity.onCreate (FragmentActivity.java:252)
at com.gbros.tabslite.HomeActivity.onCreate (HomeActivity.kt:22)
at android.app.Activity.performCreate (Activity.java:8045)
at android.app.Activity.performCreate (Activity.java:8029)
at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1309)
at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3456)
at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3635)
at android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:85)
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:2083)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loop (Looper.java:223)
at android.app.ActivityThread.main (ActivityThread.java:7703)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1084)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
arguments?.let { it ->
val rawVersionsList = it.getParcelableArray(ARG_SONG_VERSIONS) as Array<*>
if (!rawVersionsList.isNullOrEmpty()) { // if there are no versions of this song at all, don't try to cast to Array<TabBasic>
// possible tab.type's: "Tab" (not 100% sure on this one), "Chords", "Official"
// filter out "official" tabs -- the ones without nice chords and a "content" field.
// also filter out tabs vs chords. // todo: maybe implement tabs
songVersions =
(rawVersionsList as Array<TabBasic>).filter { tab -> tab.type == "Chords" } // this line
songVersions =
songVersions.sortedWith(compareByDescending { it.votes })
}
}
setHasOptionsMenu(true)
}
From Play store analytics: com.gbros.tabslite.SongVersionFragment.onCreate
Relevant code (SongVersionFragment.kt lines 35-51):