问题描述
我在 Playstore 上有一个现有的应用程序,它在最小 sdk 15 上运行.我做了一些更改并尝试更新我的应用程序,当我上传我的 apk 时一切正常,但在发布评论部分之前,Playstore 给了我一个警告如下
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
设备支持已删除警告
停用此 APK 将导致您的应用可用于在较少类型的设备上进行新安装.
Deactivation of this APK will result in your app being available for new installs on fewer types of devices.
提示如果这是意外更改,请在新版本中保留此 APK发布或确保您的新 APK 支持所有当前支持的设备.
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
我的大部分搜索表明,如果我在清单中指定了诸如 android:required="false" 屏幕支持标签 等
most of my search indicate that if i have specify something in manifest like android:required="false" screen support tags etc
但问题是我没有添加任何新的库或硬件功能只添加了一些新类,我不知道是什么导致了这个问题.我将展示我的 manifest 和 gradle 如何在 Playstore 和我的新更新中查找现有应用
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
我现有的 App gradle 和 manifest
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>
以上是我目前在 Playstore 上的应用详情
The above is my current app deatils on playstore
以下是来自 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>
我只在清单上添加了 2 个活动,并在 gradle 中更改了新的 Butternife.任何人都可以帮助我导致 Playstore 中出现警告的原因,因为我没有对我的应用程序进行任何重大更改.
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.
推荐答案
请查看此答案和评论.大多数情况下,这是因为一些清单更改和一些屏幕支持或添加了新权限,因此这是一件好事.
Please check this answer and the comments.Most of the times it would be because of some manifest changes and some screen support or new permissions added and hence would be a good to go thing.
这篇关于在 Playstore Android 上更新应用程序时,设备支持删除了警告的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!