I'm very new to Android development and this is one of my first projects. I realized that my API Level is set to 20 when datepicker gave an "exception rasied during rendering" error.
I wanted to change the API level to 19 as the API 20 is set to wearable devices. I have installed the API 19 SDK but it doesnt appear for selection during development.
I have also tried to set -
minSdkVersion 10
targetSdkVersion 20
on build gradle but it doesn't work.
I cannot run the emulator as the API is set to 20 and it will display error on a watch :(
How do I set make the API 19 as one of the options during development as I already installed the SDK?
Set
compileSdkVersion 19
in your build.gradle.
minSdkVersion and targetSdkVersion control app installation and runtime backwards compatibility modes, not the SDK you build with.
Related
I want to write an android app in android studio. I need API level 21 for permissions in install time not in run time, but android studio does not allow to use api level 21. The error is:
Google play requires that apps target API level 26 or higher...
Is there any way i write my program in api level 21 in year 2019!!!?
error in gradle
Set targetSdkVersion to 26 & minSdkVersion to 21.0 in "build.gradle".
My minSDK version is 16 and my targetSDK version is 27. The compileSDK version is 28.
Since the targetSDK version is 27 it should run on Oreo(8.0.0) without issues but some of the features don't work as intended. However they do work fine on Nougat.
Why is this so?
The targetSDK is stating what you built in the app to be able to handle. So, there might be a new feature in API 28 and you're saying your code was build against API 27 so if you're running on API 28 and there is support on 28 for how you used the api before, then it will try to maintain your API 27 coded behavior. There still exists the possibility your API 27 code will result in different or wrong behavior if run on API 28 though.
Please review the documentation as well:
https://developer.android.com/guide/topics/manifest/uses-sdk-element
"To maintain your application along with each Android release, you should increase the value of this attribute to match the latest API level, then thoroughly test your application on the corresponding platform version."
I'm trying to execute my application in emulator having minSdkVersion 22, compileSdkVersion 25 and targetSdkVersion 25 but the emulator doesn't show my application. However, when I try to do the same with emulator having targetSdkVersion 24 my application executes successfully. I wanted to know why is this happening and how to solve this problem of version integration?
check this question:
What is the difference between compileSdkVersion and targetSdkVersion?
an example of this link says :
For example, setting this value to "11" or higher allows the system to apply a new default theme (Holo) to your app when running on Android 3.0 or higher...
target sdk version has different features for different versions
Hy,
I have some basic doubts about developing with android studio:
minSdkVersion 15: with this configuration I am forcing to use only
the features from api level 15 and not higher. Is correct? For what I
read I dont think so
minSdkVersion 15 and compileSdkVersion 24: with this configuration I
can use api level until level 24. Is this correct?
minSdkVersion 15 and compileSdkVersion 23: with this configuration if I
use api features from api 23, this application wont work in an android
device with api level 20 for example, right?
With the previous configuration, and android device with api level 20
will be able to download and install the application because its api is
higher than the minSdkVersion 15 but will not be able to run because it
has features from api 23, right?
If I want to make sure that I want to use an api level and not higher
because of the previous problems commented, the configuration minSdkVersion 15 and compileSdkVersion 15 is the only way? is a common
practice?
Thanks a lot!
minSdkVersion 15: with this configuration I am forcing to use only the features from api level 15 and not higher. Is correct?
No. A minSdkVersion of 15 means that you do not want your app to run on devices with a lower API level than that. 15 corresponds to Android 4.0.3.
minSdkVersion 15 and compileSdkVersion 24: with this configuration I can use api level until level 24. Is this correct?
Your IDE will allow you to write code using classes, methods, fields, etc. from API Level 24. Your IDE should also warn you that using classes, methods, fields, etc. that were added to the SDK after API Level 15 may result in runtime errors.
minSdkVersion 15 and compileSdkVersion 23: with this configuration if I use api features from api 23, this application wont work in an android device with api level 20 for example, right?
Well, API Level 20 is a special Android version for the first-generation Android Wear devices. But if we switch that to API Level 19 (Android 4.4), if you blindly call an Android 5.1 (API Level 23) method, you will crash on Android 4.4. This is why the IDE will warn you about this, why you often see checks of BuildConfig.VERSION.SDK_INT, and why the SDK has these ...Compat classes (which try to hide a lot of these version differences).
With the previous configuration, and android device with api level 20 will be able to download and install the application because its api is higher than the minSdkVersion 15 but will not be able to run because it has features from api 23, right?
The device will attempt to run the app. How far it gets depends on how well the app is written. Again, you can create an app that uses newer-API features that gracefully degrades to run on older devices. This is not significantly different than how a Web site or Web app might want to use the latest HTML5 features but gracefully degrades to handle older or less-capable browsers.
If I want to make sure that I want to use an api level and not higher because of the previous problems commented, the configuration minSdkVersion 15 and compileSdkVersion 15 is the only way?
No. Again, the IDE will (usually) yell at you when you try using SDK features that are acceptable for the compileSdkVersion but are newer than the minSdkVersion.
is a common practice?
Not since 2010 or so.
FWIW, here is the documentation on this subject, limited as it may be.
I have set the minSdkVersion to 15 and build target to 19 in project properties. I am using Eclipse. I have created 2 AVDs. On with sdk 15 and the other with 19. When I run the project, Eclipse shows me only the AVD which is build with sdk 19. Should it also not show the one with sdk 15 since i have mentioned minSdkVersion as 15? Does this mean my app will not be shown to devices which are running sdk 15 in the market place?
minSDKVersion means the minimum supported version so the app will show up for devices running sdk 15. For me, in Eclipse, all supported emulators show up in android device chooser.
More info : http://developer.android.com/guide/topics/manifest/uses-sdk-element.html