I know this might be a easy question to some people, but i been googling this for this entire afternoon and try to find out how to set up the build.gradle file in my Android project.
I am updating some APIs and making them ready to Android M. Now everything is fine now. However, i got confused about the minSdkversion,targetSdkversion,complieSdkVersion.
My current setup is
android {
compileSdkVersion 'android-MNC' //this was 21
buildToolsVersion "22.0.1"
defaultConfig {
...
minSdkVersion 11
targetSdkVersion 'MNC' //this was 21
...
}
...
}
As you can see from the comments, my app was complied and target API21 before and now i change it to MNC in order to cover the whole range from api11to MNC.
This is my test cases,
Device with Android M(API22)---OK
Device with Android 5.1.1 (API22)---error and FAILED_OLDER_SDK
If i change my setup to
android {
compileSdkVersion 21
buildToolsVersion "22.0.1"
defaultConfig {
...
minSdkVersion 11
targetSdkVersion 21
...
}
Test cases,
Device with Android M(API22)---OK
Device with Android 5.1.1(API22)---OK
Device with Android 4.3.1(API18)---OK //Why is this OK?
if device with API18 can run the project complied against 21, then why the Android 5.1.1(API22) couldn't run the project complied against MNC?
Right now, since Android M is still in developer preview, any app that targets MNC will only run in emulators or devices with the MNC developer preview.
Related
I followed this page: https://developer.android.com/about/versions/13/setup-sdk
to set up Android 13 SDK.
In my build.gradle:
android {
compileSdkVersion("Tiramisu")
defaultConfig {
targetSdkVersion("Tiramisu")
}
}
Then I got the error:
> Unsupported value: Tiramisu. Format must be one of:
- android-31
- android-31-ext2
- android-T
- vendorName:addonName:31
I tried to use "33" instead of "Tiramisu", but it's not working.
I'm using the latest Android Studio Preview as the instruction.
Is there anyone trying to use Android 13 SDK?
This answer is no longer valid because you can use API version 33 now for Tiramisu as it's officially released
Credit to #NickolaySavchenko - Posting this answer since I've been waiting for him for a day.
Finally, after taking advice from #NickolaySavchenko - I have a final working code like this.
compileSdkVersion "android-Tiramisu"
targetSdkVersion "Tiramisu"
Yes, you see it correctly, the targetSdkVersion is Tiramisu, not android-Tiramisu so that it can run in an emulator API Tiramisu device.
I tested and can confirm that minSdkVersion doesn't need to change to android-Tiramisu or Tiramisu. I'm still keeping it as 19 and it's working great.
As #NickolaySavchenko said
compileSdkPreview "android-Tiramisu"
targetSdkPreview "android-Tiramisu"
working fine
and to run it on android 13 you also need to change your minSdk to "android-Tiramisu"
This question already has answers here:
Android: Get TargetSDKVersion in runtime
(5 answers)
Closed 2 years ago.
I am trying to determine the Build SDK level from within my app. I tried
Log.i( "MYAPP", "SDK="+Build.VERSION.SDK_INT );
I previously had been building for level 28, but recently upgraded to level 30.
My module's current build.gradle file included:
android {
compileSdkVersion 30 // was 28
defaultConfig {
applicationId "com.ramrod.MyApp"
minSdkVersion 23
targetSdkVersion 30 // was 28
more ...
Strangely, logcat still shows level 28.
I've re-synced, did a clean and rebuilt the app but no change.
What's going on
?
As you can see in the documentation here, SDK_INT returns the OS version of the device in which the app is running, and not the targetSdkVersion you're looking for.
public static final int SDK_INT
The SDK version of the software
currently running on this hardware device.
This value never changes
while a device is booted, but it may increase when the hardware
manufacturer provides an OTA update.
To get the targetSdkVersion you need to use ApplicationInfo.targetSdkVersion class:
packageManager.getApplicationInfo(youPackage, 0).targetSdkVersion;
i made android app for minSdkVersion 23 and targetSdkVersion 23.while launching i saw that this can only support 5000 devices in 15000 devices.i want to make this app support for all devices.how can i do?
defaultConfig {
applicationId "com.love.ksr_red_app"
minSdkVersion 23
targetSdkVersion 23
versionCode 2
versionName "2.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
It depends on minSdkVersion and targetSdkVersion.
Try making minSdkVersion to lowest OS version to which you make your app compatible with.
And make targetSdkVersion to the latest OS version available. This will make sure that your application is targeting towards all the devices available in the market and will compatible with them.
i want to make this app support for all devices.how can i do?
Well..., That looks practically impossible. Though you can try below thing... which will make your app support most of the devices that are present in the market
1) Launch android studio and Create new project
2) Name new project
3) select the minimum support version user friendly
Look it will be supporting 96 % of the devices in the market
Things to keep in mind :
Very old devices are no more there in market like android 1.0 to 4.0
By doing this way it ensures you are going to give support to the maximum number of the devices you can
It will make and alter the things necessary for you in the project
Most importantly... you have to manage exceptions and build versions via code..!!
There are some devices like VIVO in india or other countries which takes android and modifies it to FuntouchOS which will not let you start your program ON_BOOT_COMPLETED... Such phones are based on android and not purely android like others.
Thats why it is not practically possible to support all the devices which shows you in Google console in numbers; while uploading an app
Hope it helps you or someone else
Change your buile.gradle with this configration.
**android {
compileSdkVersion 25
defaultConfig {
applicationId "com.websinfotech.apptophonecallexample"
minSdkVersion 15
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
}**
I'm currently developing on an app using:
android {
compileSdkVersion 25
buildToolsVersion "25.0.0"
...
defaultConfig {
...
minSdkVersion 19 // to be 16
targetSdkVersion 19 // to be 25
...
}
}
As you can see my min/max APIs are both 19, but my intention is to build for 16 to 25. (The app has already been developed and used in this range.) At API 19, I get ~200 lint warnings/errors, some for various forms of deprecation. So my question is:
Would fixing all lint errors under API 19 cause app incompatibility problems when changing the API to range from 16 to 25?
PS. No I can't test because I simply have no access to devices of earlier/later AOS's. Or did I miss something?
When I am trying to make a new Google Maps Activity, its grey and I cant click the option. (New --> Google --> Google Maps Activity (Requires MinSdk >=9)
I got the same message when I create a new app and try to choose the activity while setting up a new project.
C:\Users\Joey\AppData\Local\Android\sdk\platforms
Android-23
And when opening the SDK manager in Android Studio I got the following SDK tools.
Can someone tell me if Im missing something?
In your application level build.gradle file do you have minSdkVersion 9 or greater than 9 like this:
defaultConfig {
minSdkVersion 15 //this should be greater than or equal to 9
targetSdkVersion 23
//...
}