diff --git a/src/CalcManager.Android/CalcManager.Android.vcxproj b/src/CalcManager.Android/CalcManager.Android.vcxproj
index dd55a9db..aaaa423c 100644
--- a/src/CalcManager.Android/CalcManager.Android.vcxproj
+++ b/src/CalcManager.Android/CalcManager.Android.vcxproj
@@ -64,6 +64,7 @@
+
diff --git a/src/CalcManager.Android/CalcManager.Android.vcxproj.filters b/src/CalcManager.Android/CalcManager.Android.vcxproj.filters
index fba4455c..40dcf476 100644
--- a/src/CalcManager.Android/CalcManager.Android.vcxproj.filters
+++ b/src/CalcManager.Android/CalcManager.Android.vcxproj.filters
@@ -41,6 +41,7 @@
+
diff --git a/src/CalcManager.Android/Source.cpp b/src/CalcManager.Android/Source.cpp
new file mode 100644
index 00000000..ce079f01
--- /dev/null
+++ b/src/CalcManager.Android/Source.cpp
@@ -0,0 +1,23 @@
+#include
+
+// see https://github.com/aosp-mirror/platform_bionic/commit/3103f6d39e4ae309a9374ee38f414400c889c558#diff-71865bddb52592934317bb2340a94b0cR199
+
+double strtod_l(const char* s, char** end_ptr, locale_t)
+{
+ return strtod(s, end_ptr);
+}
+
+float strtof_l(const char* s, char** end_ptr, locale_t)
+{
+ return strtof(s, end_ptr);
+}
+
+long strtol_l(const char* s, char** end_ptr, int base, locale_t)
+{
+ return strtol(s, end_ptr, base);
+}
+
+unsigned long strtoul_l(const char* s, char** end_ptr, int base, locale_t)
+{
+ return strtoul(s, end_ptr, base);
+}
diff --git a/src/CalcManager.Android/strto_workaround.cpp b/src/CalcManager.Android/strto_workaround.cpp
new file mode 100644
index 00000000..1e927c84
--- /dev/null
+++ b/src/CalcManager.Android/strto_workaround.cpp
@@ -0,0 +1,21 @@
+#include
+
+double strtod_l(const char* s, char** end_ptr, locale_t)
+{
+ return strtod(s, end_ptr);
+}
+
+float strtof_l(const char* s, char** end_ptr, locale_t)
+{
+ return strtof(s, end_ptr);
+}
+
+long strtol_l(const char* s, char** end_ptr, int base, locale_t)
+{
+ return strtol(s, end_ptr, base);
+}
+
+unsigned long strtoul_l(const char* s, char** end_ptr, int base, locale_t)
+{
+ return strtoul(s, end_ptr, base);
+}