I recently finished developing my app. and I want to change the target API level of the app to 21. Should I change it to 21 or leave it at 19?
Also what changes would I have to make to the gradle file to make the target set to 21?
Thanks
Go to the module's build.gradle file (NOT the one for the project) and replace 19 with 21. It should look similar to below
compileSdkVersion 21
buildToolsVersion '21.1.2'
defaultConfig {
minSdkVersion 8
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
Also change this in the manifest
<uses-sdk android:targetSdkVersion="21"></uses-sdk>
Related
I'm using latest dependencies in my project. My minSdkVersion is set as 15 and targetSdkVersion is 26. Which build tools and compileSdkVersion should I use so that the app can be run even in Adnroid 5.
Here are the details-
compileSdkVersion 28
buildToolsVersion '28.0.3'
defaultConfig {
applicationId "com.app.shoppingbull"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
}
Will these work fine in all devices or I have to reduce the CompileSdkVersion?
Always follow this,
minSdkVersion <= targetSdkVersion <= compileSdkVersion
Because, when you develop app always target the latest SDK so that you provide the latest features of Google to your user.
According to source.android.com if you want to make your App can be run in Adnroid 5 and newer, you should set the minSdkVersion to 21
tip: don't make your minSdkVersion lower than 21
Your application will work in the range of minSdkVersion and targetSdkVersion api level.
You should target your app to the latest version of Android SDK version (see SDK Platform release notes) to make sure you've covered all the Android version. It also force you to check if your code is working correctly with the latest version.
So, change your app build.gradle to something like this:
compileSdkVersion 28
buildToolsVersion '28.0.3'
defaultConfig {
applicationId "com.app.shoppingbull"
minSdkVersion 15
targetSdkVersion 28 // latest stdk
versionCode 1
versionName "1.0"
Ideally, your targetSdkVersion and compileSdkVersion should be the same, and the latest. That's 28 at the current time of writing.
minSdkVersion dictates the minimum version your app will support, so having a compile/target of 28 will still let you run on 15.
I've just developed an app. I set API23 while creating project. Now I changed Min Sdk version to API 16 via File>Project Structure > app>flavors. But app won't run other than API 23 (Marshmallows).... What do I do now??
Did you change the minSdk to 16 in the build.gradle?
Try to add minSdkVersion to 16 in your app>build.gradle file:
android {
defaultConfig {
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
}
This question already has answers here:
How can I make sure my Android Application will run in lower and higher versions?
(3 answers)
Closed 6 years ago.
I am using api 23 and my app doesn't work on lower versions. Please suggest any solution for creating compatibility with lower versions in android studio.
In build.gradle
Change minSdkVersion to the version you want it to work.
example
defaultConfig {
applicationId "com.example.myname.myprj"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
You can set the minimum version of API on which you want to run your application in your app module's build.gradle file right under defaultConfig section
defaultConfig {
applicationId "com.example.me"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
multiDexEnabled true
}
Check it out, maybe right now it may be 23 or something, This minSdkVersion decides the minimum number above which application can run.
Is there a way to restrict Android layout editor to generate attributes for a specific API level?
I am dragging and dropping and looking at the generated XML. Though I chose "API level 16" on the preview dropdown, it seems Android Studio still adds attributes like "layout_alignParentStart" which are API Level 17. Is there a way to restrict the elements it adds to API Level 16.
Part of my project's gradle configuration:
android {
compileSdkVersion 23
buildToolsVersion "19.1.0"
defaultConfig {
applicationId "com.github.dht.holodeck"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
...
I have the following in my main app:
...
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
minSdkVersion 8
targetSdkVersion 23
versionCode 19
versionName "1.0.5"
}
...
In a library I use, this is defined:
...
android {
compileSdkVersion 17
buildToolsVersion "19.1.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 7
}
...
I have uppgraded my API target etc. in my app. The library I have, use the same API target etc. (haven't changed the code). If I upgrade my app and use libraries, can I leave them as is? Or do I need to sync the two in respect with compileSdkVersion, buildToolsVersion, minSdkVersion and targetSdkVersion?