[Android] Android Calculator Series – Division by Zero Crash Issue Resolved

Android Calculator Series – Division by Zero Crash Issue Resolved

Affected Versions

The following versions were affected by the division by zero crash issue:

Travel Calculator – V1.8.5
CyCalc – V1.3.11
TW Exchange Calc – V1.0.8
To check your current version, open the app’s menu and go to the “About” dialog, where the version number is displayed.

Solution

The issue has been fixed by blocking any division by zero operation. The value will now remain as 0.

After considering various options, we opted for the simplest solution to avoid introducing any new complications.

Updated Versions

The updated versions with the fix are:

Travel Calculator – V1.8.6
CyCalc – V1.3.12
TW Exchange Calc – V1.0.9
Once you update to these versions, the division by zero crash will no longer occur.

Currently, Travel Calculator has been rolled out in 100% progress. All users can update to V1.8.6 by now.

The other apps have already been fully released, so if you have automatic updates enabled, you should already have the latest version.

Future Updates

Moving forward, Android updates will be scheduled twice a year, around January and July, coinciding with winter and summer breaks.

There won’t be any major changes—just minor bug fixes and updates to the latest Google SDKs before releasing them.

If similar issues arise due to updates from Google, we’ll handle them in a similar manner—quickly identifying the problem and releasing a fix.

Thank you for your continued support. As long as I’m around, these apps will stay up-to-date with Google’s SDK, making currency conversion during travel less of a hassle.

Wishing you safe and enjoyable travels!

[Android] Calculator type app will encounter divide by 0 error

Incident

In this update, we introduced a new solution to resolve the decimal point issue.

This solution allows all calculations to be handled in decimal, ensuring precise representation of decimal points.

However, the previous safeguard that prevented the app from crashing when dividing by zero no longer works.

So, for the Android calculator series, if you press any number, then the division sign, and then 0—bingo! The app will immediately shut down.

Planned Fix

We have identified the problematic code and have already fixed it.

Even if someone tries to intentionally cause a crash by dividing by zero, the app will no longer crash. However, we are still deciding how to handle the display part.

In mathematics, dividing by zero results in infinity, or it’s considered undefined.

The usual approach is to display “NaN,” meaning “Not a Number,” but that might be confusing for users. Currently, we are considering keeping the value as 0, though this would not align with the mathematical principle.

One possible approach is to display a short message informing the user that division by zero does not produce a valid result. However, this would require modifying more code, which could affect other parts of the app. Therefore, we might hold off on this update for now.

Expected Update Schedule

The code has been fixed, but before releasing the new version, we’ll collect error reports for a day or two to ensure there are no other issues. Once resolved, we’ll push out an update.

Tentatively, we plan to release the new version on August 18, 2024. Until then, please be careful not to use division by zero in the Travel Calculator, as it will cause the app to immediately crash—vanish without a trace.

This Is My Fault

So, if you want to blame someone, blame me.

I won’t hide from this responsibility.

Just please be gentle with the criticism.

[Android] The Travel Calculator V1.8.5 Crash Issue on Android 14 Has Been Fixed

Cause

Due to the latest policy requirements from Google, we needed to release an updated version.

The app itself didn’t undergo significant changes; we simply recompiled it using the latest version of Google’s Android libraries and updated the version number.

But, as we all know, the most important part of life is that “But.” This time, Google’s own library caused the issue.

In a place where our code shouldn’t have been blocked, an unexpected event was triggered that terminated the normal code execution.

This issue only occurs on Android 14 (Tiramisu) and above. Versions below Android 13 are not affected.

Solution

After identifying the issue, we simply removed the problematic code.

If we were to follow the proper solution, we would need to raise the minimum supported version to SDK Level 33, which is Android 13. However, that would render many users’ phones, including mine, incompatible.

So, between two undesirable options, we chose the lesser evil and removed the problematic code. This won’t impact the overall functionality.

New Version

The new version, which has been fixed, is already available. The version name remains V1.8.5, but it’s now based on a version that doesn’t have this issue.

So, if you’ve encountered a crash right after opening the app, please update again, and the issue should be resolved.

Although we’ve been “once again” let down by Google, it’s still our app’s issue, and we sincerely apologize to everyone. (Why did I say “again”?)

A Few Thoughts

In my opinion, there’s no need to make significant changes to a stable app, especially one that needs to be consistently reliable, like this one that’s often used while traveling. Any bugs introduced by changes can lead to disaster.

I’ve always believed in the philosophy of the Tatung rice cooker: as long as it can cook rice, it’s a good rice cooker.

But our great Google seems to feel uneasy unless they give developers something to do. Every now and then, they introduce policy changes, and we have to upgrade our API Level accordingly, or else we’ll be blocked from future updates.

This forces us to update every so often. If Google’s own software hasn’t been rigorously tested, issues like this can arise.

Users don’t know whose fault it is, so they just blame the app developers.

And we can only accept that.

That’s why I can never sleep well the night after releasing an update, fearing a flood of crash reports, only to find out that, once again, it’s Google’s fault.

Thank you for your understanding. The new version is up, and we wish you a pleasant trip!