i released a old version
using this configs:
compileSdkVersion 23
buildToolsVersion '23.0.3'
defaultConfig {
applicationId "my.application.id"
minSdkVersion 15
targetSdkVersion 23
versionCode 3412
versionName "3.3.0"
multiDexEnabled true
}
and all dependencies using 23.4.0
after a i updated to
android {
compileSdkVersion 25
buildToolsVersion '25.0.2'
useLibrary 'org.apache.http.legacy'
defaultConfig {
applicationId "my.application.id"
minSdkVersion 15
targetSdkVersion 25
versionCode 3415
versionName "3.4.2"
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
}
a special device is not compatible with the app anymore thru the Play Store
but the strange thing is, i can run the .apk from internal memory, and its installed perfectly!
i must allow this device to download from PlayStore, since most of my users use this special tablet, i dont know what is wrong cuz there is no error, no output, the APP works in this device, but for play store, its incompatible
im using the new Rollout system and testing thru beta/alpha not working for this app too
the problem was a library using the required flag for camera at the manifest.
for someone having something similiar, look at the dependencies
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.
My build.gradle default config:
android {
compileSdkVersion 27
defaultConfig {
applicationId "my.app"
minSdkVersion 19
targetSdkVersion 27
multiDexEnabled true
versionCode 1
versionName "1"
vectorDrawables.useSupportLibrary = true
}
...
}
But for a Samsung Galaxy J1 using Android version 6.0.1 it says that the device is not compatible.
Question: What can be a reason?
Note:
The project uses mixed Kotlin and Java code. What more data should I share to help find an answer?
I have recently started using the android studio. Just after installing and downloading all the requisite files, I am welcomed by this error,"Failed to find the target with the hash string 'API 27'....", whereas I already have both API 27 and 28 installed (although 28 shows up to be partly installed).
I am completely new to this software.
Tools
SDK
error
you should use like below in gradle
{
compileSdkVersion 27
buildToolsVersion '27.0.1'
defaultConfig {
applicationId "xxxxxxxxx"
minSdkVersion 15
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
}
don't write like compileSdkVersion 'API 27' its compileSdkVersion 27 only
I am unable to understand the error. What I understood is that in my 14th version targetSdkVersion was 23 and now I am unable to upload the apk.
I now have targetSdkVersion = 22 and even for my previous version targetSdkVersion was 22.
I want to launch the app asap. But stuck with this problem.
Gradle
defaultConfig {
applicationId "***"
versionCode 30
versionName "3.0"
multiDexEnabled true
compileSdkVersion 23
buildToolsVersion "23.1.1"
minSdkVersion 14
targetSdkVersion 22
}
It appears you have uploaded an APK to prod that uses the M runtime permissions model (level 23); This means that you can't downgrade to 22. This is due to the changed permissions model between these different versions.
To be clear, you won't be able to distribute your APK targeting API 22 again, and there is not a way to change this.
I'm very confused with gradle versioning settings. I found some information about this build system, but nowhere was written about versioning details. Can you explain what these options mean?
compileSdkVersion
buildToolsVersion
minSdkVersion
targetSdkVersion
The minSdkVersion is most obvious, because it means the minimal API we want to support, e.g. 14 (Android >= 4.0).
The targetSdkVersion:
This attribute informs the system that you have tested against the target version and the system should not enable any compatibility behaviors to maintain your app's forward-compatibility with the target version.
I don't quite understand that.
My case is to support devices from API 15. What are the proper settings for that?
I read somewhere that target should be the highest as possible, Android Studio tells me that too, but when I set this up and try to run on Nexus 5 I get:
Failure [INSTALL_FAILED_OLDER_SDK]
My build.gradle
android {
compileSdkVersion 'android-L'
buildToolsVersion "20.0.0"
defaultConfig {
applicationId "my.package.name"
minSdkVersion 14
targetSdkVersion 'L'
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
According to official doc:
http://developer.android.com/preview/setup-sdk.html#createProject
if you would like to try out new features you should use these values:
compileSdkVersion is set to 'android-L'
minSdkVersion is set to 'L'
targetSdkVersion is set to 'L'
It is the reason of Failure [INSTALL_FAILED_OLDER_SDK].
If you don't need android-L I suggest using these values:
defaultConfig {
applicationId "my.package.name"
minSdkVersion 14
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
Said that, there is an unofficial workaround described here (in any case I suggest that you don't use it)
Failure [INSTALL_FAILED_OLDER_SDK] Android-L