I have an existing app available on playstore which runs on min sdk 15. I had made some changes and try to update my app and when I uploaded my apk everything goes fine but before the publish on review section , playstore gives me a warning as below
Device support removed Warning
Deactivation of this APK will result in your app being available for new installs on fewer types of devices.
TipIf this is an unintended change, then retain this APK in the new release or ensure that your new APKs support all currently supported devices.
after seeing this warning i have search different forums to know what cause the problem
most of my search indicate that if i have specify something in manifest like android:required="false" screen support tags etc
but the thing is i have not added any new library or hardware feature only added some new classes, i have no idea what makes the issue. i will show how my manifest and gradle looks for the existing app in playstore and my new update
My existing App gradle and manifest
Gradle
buildscript {
repositories {
maven { url "http://dl.bintray.com/populov/maven" }
mavenCentral()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
classpath 'com.google.gms:google-services:3.0.0'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
maven { url "http://dl.bintray.com/populov/maven" }
mavenCentral()
jcenter()
}
}
//app gradle
apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.my.app"
minSdkVersion 15
targetSdkVersion 25
versionCode 10
versionName "2.0.0.3"
}
lintOptions {
checkReleaseBuilds false
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(":volley")
compile group: 'com.google.code.gson', name: 'gson', version: '2.3.1'
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:design:25.3.1'
compile 'com.viewpagerindicator:library:2.4.1@aar'
compile 'com.android.support:cardview-v7:25.3.1'
compile 'com.android.support:recyclerview-v7:25.3.1'
compile 'de.hdodenhof:circleimageview:2.0.0'
compile 'com.facebook.android:facebook-android-sdk:4.7.0'
compile 'com.google.android.gms:play-services-gcm:10.2.1'
compile 'com.android.support:support-v4:25.3.1'
compile 'uk.co.chrisjenx:calligraphy:2.2.0'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.jakewharton:butterknife:8.4.0'
compile files('libs/YouTubeAndroidPlayerApi.jar')
apt 'com.jakewharton:butterknife-compiler:8.4.0'
}
apply plugin: 'com.google.gms.google-services'
Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.my.app">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- <uses-permission android:name="android.permission.GET_ACCOUNTS" />-->
<!-- <uses-permission android:name="android.permission.USE_CREDENTIALS" />-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<!-- GCM Permissions -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission
android:name="com.my.app.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.my.app.permission.C2D_MESSAGE" />
<application
android:name=".app.AppController"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<!-- LAUNCHER ACTIVITY -->
<activity
android:name=".LaunchActivity"
android:theme="@style/SplashTheme"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".SliderActivity"
android:screenOrientation="portrait">
</activity>
<activity
android:name=".LoginActivity"
android:label="Sign In"
android:screenOrientation="portrait"
android:theme="@style/Login_Accent_Theme"
></activity>
<activity
android:name=".ForgotPasswordActivity"
android:label="Change Password?"
android:parentActivityName=".LoginActivity"
android:screenOrientation="portrait"
android:theme="@style/App_Accent_Theme"
android:windowSoftInputMode="stateHidden"></activity>
<activity
android:name=".VideoActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:hardwareAccelerated="true"
android:theme="@style/App_Accent_Theme" />
<activity
android:name=".SignUpActivity"
android:label="Sign Up"
android:screenOrientation="portrait"
android:theme="@style/Login_Accent_Theme"></activity>
<activity
android:name=".HomeActivity"
android:launchMode="singleTop"
android:configChanges="orientation"
android:screenOrientation="portrait"></activity>
<activity android:name=".YoutubePlayerActivity"
android:screenOrientation="landscape"
android:configChanges="keyboardHidden|orientation|screenSize"></activity>
<activity
android:name=".VideoLessonActivity"
android:parentActivityName=".HomeActivity"
android:screenOrientation="portrait">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".HomeActivity" />
</activity>
<activity
android:name=".NotificationActivity"
android:screenOrientation="portrait"
>
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".HomeActivity" />
</activity>
<activity
android:name=".MTestActivity"
android:parentActivityName=".HomeActivity"
android:screenOrientation="portrait">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".HomeActivity" />
</activity>
<activity
android:name=".MSummaryActivity"
android:screenOrientation="portrait">
</activity>
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".HomeActivity" />
</activity>
<activity
android:name=".PdfActivity"
android:launchMode="singleTop"
android:parentActivityName=".HomeActivity"
android:screenOrientation="portrait"
>
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".HomeActivity" />
</activity>
<activity
android:name=".WebActivity"
android:hardwareAccelerated="true"
android:screenOrientation="portrait"></activity>
<activity
android:name=".FeedWebview"
android:hardwareAccelerated="true"
android:label="News Feed"
android:screenOrientation="portrait"></activity>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" />
<activity
android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<!-- GCM CLASSES -->
<receiver
android:name="com.google.android.gms.gcm.GcmReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.my.app" />
</intent-filter>
</receiver>
<service android:name=".gcm.RegistrationIntentService"
android:exported="false"/>
<service
android:name=".gcm.MyGcmListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
<service
android:name=".gcm.MyInstanceIDListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID" />
</intent-filter>
</service>
</application>
The above is my current app deatils on playstore
The following is the warning signed build from playstore
gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
classpath 'com.google.gms:google-services:3.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
maven { url "http://dl.bintray.com/populov/maven" }
mavenCentral()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
//app gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.my.app"
minSdkVersion 15
targetSdkVersion 25
versionCode 11
versionName "2.0.0.4"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile project(":volley")
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:design:25.3.1'
compile 'com.viewpagerindicator:library:2.4.1@aar'
compile 'com.android.support:cardview-v7:25.3.1'
compile 'com.android.support:recyclerview-v7:25.3.1'
compile 'de.hdodenhof:circleimageview:2.0.0'
compile 'com.facebook.android:facebook-android-sdk:4.7.0'
compile 'com.google.android.gms:play-services-gcm:10.2.1'
compile 'com.android.support:support-v4:25.3.1'
compile 'uk.co.chrisjenx:calligraphy:2.2.0'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.jakewharton:butterknife:8.4.0'
compile files('libs/YouTubeAndroidPlayerApi.jar')
/*@new change gradle compile*/
compile 'com.jakewharton:butterknife:8.7.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.7.0'
compile 'com.google.code.gson:gson:2.3.1'
}
apply plugin: 'com.google.gms.google-services'
Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.my.app">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- <uses-permission android:name="android.permission.GET_ACCOUNTS" />-->
<!-- <uses-permission android:name="android.permission.USE_CREDENTIALS" />-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<!-- GCM Permissions -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission
android:name="com.my.app.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.my.app.permission.C2D_MESSAGE" />
<application
android:name=".app.AppController"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<!-- LAUNCHER ACTIVITY -->
<activity
android:name=".LaunchActivity"
android:theme="@style/SplashTheme"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".SliderActivity"
android:screenOrientation="portrait">
</activity>
<activity
android:name=".LoginActivity"
android:label="Sign In"
android:screenOrientation="portrait"
android:theme="@style/Login_Accent_Theme"
></activity>
<activity
android:name=".ForgotPasswordActivity"
android:label="Change Password?"
android:parentActivityName=".LoginActivity"
android:screenOrientation="portrait"
android:theme="@style/App_Accent_Theme"
android:windowSoftInputMode="stateHidden"></activity>
<activity
android:name=".VideoActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:hardwareAccelerated="true"
android:theme="@style/App_Accent_Theme" />
<activity
android:name=".SignUpActivity"
android:label="Sign Up"
android:screenOrientation="portrait"
android:theme="@style/Login_Accent_Theme"></activity>
<activity
android:name=".HomeActivity"
android:launchMode="singleTop"
android:configChanges="orientation"
android:screenOrientation="portrait"></activity>
<activity android:name=".YoutubePlayerActivity"
android:screenOrientation="landscape"
android:configChanges="keyboardHidden|orientation|screenSize"></activity>
<activity
android:name=".VideoLessonActivity"
android:parentActivityName=".HomeActivity"
android:screenOrientation="portrait">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".HomeActivity" />
</activity>
<activity
android:name=".NotificationActivity"
android:screenOrientation="portrait"
>
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".HomeActivity" />
</activity>
<activity
android:name=".MTestActivity"
android:parentActivityName=".HomeActivity"
android:screenOrientation="portrait">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".HomeActivity" />
</activity>
<activity
android:name=".MSummaryActivity"
android:screenOrientation="portrait">
</activity>
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".HomeActivity" />
</activity>
<activity
android:name=".PdfActivity"
android:launchMode="singleTop"
android:parentActivityName=".HomeActivity"
android:screenOrientation="portrait"
>
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".HomeActivity" />
</activity>
<activity
android:name=".WebActivity"
android:hardwareAccelerated="true"
android:screenOrientation="portrait"></activity>
<activity
android:name=".FeedWebview"
android:hardwareAccelerated="true"
android:label="News Feed"
android:screenOrientation="portrait"></activity>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" />
<activity
android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<!-- GCM CLASSES -->
<receiver
android:name="com.google.android.gms.gcm.GcmReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.my.app" />
</intent-filter>
</receiver>
<service android:name=".gcm.RegistrationIntentService"
android:exported="false"/>
<service
android:name=".gcm.MyGcmListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
<service
android:name=".gcm.MyInstanceIDListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID" />
</intent-filter>
</service>
<activity android:name=".ui.FiltrActivity"
android:theme="@style/AppThemeNoAction"
android:screenOrientation="portrait"/>
<activity android:name=".ui.SolitActivity"
android:theme="@style/AppThemeNoAction"
android:screenOrientation="portrait"/>
</application>
</manifest>
I have only added 2 more activity on manifest and change the new butternife in gradle. can any one help me what cause the warning in playstore because I haven't made any major change in my app.