diff --git a/app/src/main/java/com/geode/launcher/GeometryDashActivity.kt b/app/src/main/java/com/geode/launcher/GeometryDashActivity.kt index 9c58d17..973eaa0 100644 --- a/app/src/main/java/com/geode/launcher/GeometryDashActivity.kt +++ b/app/src/main/java/com/geode/launcher/GeometryDashActivity.kt @@ -87,6 +87,8 @@ class GeometryDashActivity : AppCompatActivity(), Cocos2dxHelper.Cocos2dxHelperL val errorMessage = when { abiMismatch && is64bit -> LaunchUtils.LauncherError.LINKER_NEEDS_32BIT abiMismatch -> LaunchUtils.LauncherError.LINKER_NEEDS_64BIT + e.message?.contains("__gxx_personality_v0") == true -> + LaunchUtils.LauncherError.LINKER_FAILED_STL else -> LaunchUtils.LauncherError.LINKER_FAILED } diff --git a/app/src/main/java/com/geode/launcher/main/ErrorComponents.kt b/app/src/main/java/com/geode/launcher/main/ErrorComponents.kt index c313115..992bff9 100644 --- a/app/src/main/java/com/geode/launcher/main/ErrorComponents.kt +++ b/app/src/main/java/com/geode/launcher/main/ErrorComponents.kt @@ -70,8 +70,20 @@ fun ErrorInfoBody(failureReason: LaunchUtils.LauncherError, modifier: Modifier = else -> stringResource(R.string.load_failed_generic_error_description) } + val context = LocalContext.current val recommendations = when (failureReason) { - LaunchUtils.LauncherError.LINKER_FAILED -> listOf( + LaunchUtils.LauncherError.LINKER_FAILED_STL -> { + val isDeveloper = PreferenceUtils.get(context).getBoolean(PreferenceUtils.Key.DEVELOPER_MODE) + + buildList { + add(stringResource(R.string.load_failed_recommendation_update)) + add(stringResource(R.string.load_failed_recommendation_report)) + + if (isDeveloper) + add(stringResource(R.string.load_failed_recommendation_dev_stl)) + } + } + LaunchUtils.LauncherError.LINKER_FAILED -> listOfNotNull( stringResource(R.string.load_failed_recommendation_reinstall), stringResource(R.string.load_failed_recommendation_update), ) @@ -100,6 +112,7 @@ fun ErrorInfoTitle(failureReason: LaunchUtils.LauncherError) { val message = when (failureReason) { LaunchUtils.LauncherError.LINKER_NEEDS_64BIT, LaunchUtils.LauncherError.LINKER_NEEDS_32BIT, + LaunchUtils.LauncherError.LINKER_FAILED_STL, LaunchUtils.LauncherError.LINKER_FAILED -> stringResource(R.string.load_failed_link_error) LaunchUtils.LauncherError.GENERIC -> stringResource(R.string.load_failed_generic_error) LaunchUtils.LauncherError.CRASHED -> stringResource(R.string.load_failed_crashed) diff --git a/app/src/main/java/com/geode/launcher/utils/LaunchUtils.kt b/app/src/main/java/com/geode/launcher/utils/LaunchUtils.kt index bc82b9c..a70878f 100644 --- a/app/src/main/java/com/geode/launcher/utils/LaunchUtils.kt +++ b/app/src/main/java/com/geode/launcher/utils/LaunchUtils.kt @@ -95,6 +95,7 @@ object LaunchUtils { enum class LauncherError { LINKER_NEEDS_64BIT, LINKER_NEEDS_32BIT, + LINKER_FAILED_STL, LINKER_FAILED, GENERIC, CRASHED; diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2feba39..78c0a37 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -99,6 +99,7 @@ Verify that the latest versions of the launcher and Geometry Dash are installed. Report this issue to the developers. Hold the Launch button to launch in safe mode. + Devs: If this is a locally built Geode version, please use the c++_shared ANDROID_STL! Cancel OK