Hi, I'm getting the error when trying to auto-instrument a client's APK. Any idea why this happens, is this due to JDK version I'm using (tried 8 and 10) or due to something in the APK?
Solved! Go to Solution.
An Android application has something called a minSdkVersion, where you declare an API level. The minSdkVersion declares which devices are allowed to run the application, because all devices have an Android OS with an associated API Level. So if you have a device running the newest Android 9.0, you have API Level 28.
API Level 14 means Android 4.0. So all device under Android 4.0 (Quite old) are not allowed to use your application. You can show your client the following distribution: https://developer.android.com/about/dashboards/ - It shows clearly that API Level 14 is not really used anymore. Furthermore there should be at least no obstacle to upgrade from 14 to 15, as pretty much every manufacturer back then provided an update from the plain 4.0 (14) to 4.0.3 (15).
Basically you can say if the minSdkVersion is high you can use far more feature during development, as certain call require a specific API level. (This can be bypassed of course by always checking the API level of the OS the application is currently running at. - But usually you want to avoid this.)
Thanks for the detailed answer, @Matthias H.
So just to make sure I understand: the client won't be able to instrument their mobile app in Dynatrace, unless they change the minSdkVersion to at least 15, and this is not something we can assist with as it would require a dev change in the APK, correct?
Yes, the developer has to change the minSdkVersion in the gradle file from 14 to 15. Usually this is just a simple change and should not lead to any additional work. This is nothing we can do for them.