I uploaded an APK to the app store, it's targeting lollipop, but on Google Play Store it says "API levels 14-19". I can't seem to figure out why the max sdk level is stuck at 19.
compileSdkVersion 22 buildToolsVersion "21.1.2"
defaultConfig {
applicationId "be.appwise.test"
minSdkVersion 14
targetSdkVersion 21
versionCode 15
versionName "1.0"
Check your AndroidManifest.xml for <uses-sdk android:maxSdkVersion="19"/> Maybe you're using a library which specified this.
Google Play store will use this attribute for filtering however the attribute is generally not needed. From the docs:
By design, new versions of the platform are fully backward-compatible. Your application should work properly on new versions, provided it uses only standard APIs and follows development best practices.
If you want to remove the attribute try one of these inside the AndroidManifest.xml:
<uses-sdk tools:overrideLibrary="the library package name" />
<uses-sdk tools:node="replace" />
Disclaimer: I haven't tested these so I don't know if they work or have any side effects. Please report any results.
Related
I have an older app that gives errors on devices with the new Android 7.0.
The app is published already and I cannot update the app actually.
How can I restrict the app for specific Android versions in the Google Play Console ?
In the play console you can only block apps for regions or specific devices.
If you really can't upload updates your best bet is to start excluding devices of which you know they have received an Android 7 update. Not recommended.
Blocking an app for an API level will require a deploy since it's done in the manifest file (in gradle config).
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... >
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />
...
</manifest>
From Supporting Different Platform versions.
An overview of all the current API levels can be found at What is API level.
When configured in Gradle it will look similar to the following snippet of a your_app_module/build.gradle file. Note that in the final result, the compile APK this will be part of the manifest.
apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "your.app.id.here"
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "0.1.0"
}
I am working on android app. Can anybody tell me that how can we restrict our app installation in android version less than 4.0 from google play developer console.
This is not set in Google Play developer console, it is set in the project's build gradle.
The setting is in build.gradle file in your application module. There should be something like this.
defaultConfig {
minSdkVersion 9
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
change minSdkVersion to whatever value of sdk you want to support.
Read more here: https://developer.android.com/studio/publish/versioning.html#minsdkversion
And here are the sdk int value for each Android version: https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels
There is no way that I know of to manage that in Developer Console. You should upload binary that was packaged with Minimum Android Version set in AndroidManifest.xml to what ever is the minimum you still want to support (4.0 in your case).
Example:
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-sdk android:minSdkVersion="14" />
</manifest>
14 is the API Level of Android 4.0.
I am new to android . I want to have an app does gives backward compatibility also means it should support versions from kitkat and above. If I make Project build target(Properties --> Android) to Android 5.0 (API-21) then it means it will run in lollipop only? If I want to add support library then which library should I import right now I have seen people importing appcompat v7 library for lollipop development. I know this one is quite basic question.
Just write Minimum sdk version in your manifest file
<uses-sdk
android:minSdkVersion="19"
android:targetSdkVersion="21" />
Just set minSdkVersion and targetSdkVersion in app gradle file.
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "guard.proguard"
minSdkVersion 19
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
}
You control the compatibility in the manifest file.
<uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="22" />
I have a app on the Google Play with the following configuration. Till now I thought that Google Play uses AndroidManifest to determine the minimum and the maximum SdkVersion. Unfortunately as it reveals people could download and install this app on higher APIs.
The question is; how to set maximum API limit for this app (I guess I need to set compileSdkVersion 17 in build.gradle but I have to be sure) before publish the apk.
AndroidManifest.xml (an extract):
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="17" />
build.gradle (an extract):
android {
compileSdkVersion 19
//...
}
You are setting targetSdk Version and minSdkVersion
maxSDK Version is a different attribute.
but is discouraged to set it
heres the full version of the code, from developer.android.com
<uses-sdk android:minSdkVersion="integer"
android:targetSdkVersion="integer"
android:maxSdkVersion="integer" />
As the Google play store indirectly choose the version ,after upload of the apk it looks after our android manifest.xml from there it takes all the information like minsdkversion and maxsdkversion in that manner our app will support based on that values it contain..
I'm using the latest and greatest IntelliJ Community edition. My application runs fine on the android emulator. However, I need the emulator to better match the Kindle Fire. I made the configuration changes in the AVD Manager (including setting device to API 10.)
When I went to my project to configure the project to target the new virtual device, I got the following message: "Build target of AVD DEV3 is not compatible with your build target."
It didn't take much work to figure out that the issue is related to my choice of API 10.
I don't know where I tell my project to use API 10. I looked all over and didn't see any references to the API level at all. Any ideas?
EDIT
I added
<uses-sdk android:minSdkVersion="10" />
to my AndroidManifest.xml file and was able to select the new device. I'm starting it up now.
The answer above is no longer true in Intellij (using gradle)
Now <uses-sdk> is ignored in the AndroidManifest.xml, it is automatically added to the built manifest file. To change the version, go to the 'build.gradle' file and look at the minSdkVersion.
As Tony and Blundell mention, the answer is to declare your minSdkVersion in your AndroidManifest.xml file. In this way, the application will be allowed to launch on any AVDs that at least meet the minSdkVersion.
Here's more documentation on the <uses-sdk> tag:
http://developer.android.com/guide/topics/manifest/uses-sdk-element.html
Set this value in the Gradle file - as shown here:
android {
compileSdkVersion 30
buildToolsVersion "30.0.3"
defaultConfig {
applicationId "com.example.kotlinconverterapp"
**minSdkVersion 26**
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}