【发布时间】:2016-03-06 14:48:03
【问题描述】:
我在 Play 商店中有一个 Android 应用程序。我刚刚发布了一个新版本,但一些用户报告说更新后他们无法打开应用程序,因为他们收到应用程序未安装错误,但他们可以通过点击打开按钮通过市场打开应用程序。在新版本中,我使用了相同的 .jks 文件,我更改了 AndroidManifest.xml,因为我想将主要活动从 .MainActivity 更改为 .Landing,因此 mainActivity 不再是主要活动。也许问题因此而发生?顺便说一句,并非所有用户都受到此问题的影响。这是新旧 AndroidManifest 文件,您能检查一下这些文件吗?也许是另一行导致了这个问题?
解决方案; - 一些用户重新启动他们的手机,它的工作原理 - 但是有些用户重启手机无法修复,所以他们删除并重新安装以修复它
但为什么某些用户会出现这种情况?
旧的 AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.example"
android:versionCode="9"
android:versionName="2.0.0"
android:installLocation="internalOnly"
>
<uses-sdk android:minSdkVersion="10" />
<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true"/>
<uses-feature android:name="android.hardware.telephony" android:required="false" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />
<permission android:name="com.test.example.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.test.example.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.android.vending.BILLING" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
>
<!--This meta-data tag is required to use Google Play Services.-->
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
<activity android:name=".MainActivity" android:label="@string/app_name" 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=".Contact" android:windowSoftInputMode="adjustNothing" android:screenOrientation="portrait"></activity>
<activity android:name=".Notes" android:screenOrientation="portrait"></activity>
<receiver
android:name=".GcmBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<!-- Receives the actual messages. -->
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.test.example" />
</intent-filter>
</receiver>
<service android:name=".GcmIntentService" />
<!--Include the AdActivity configChanges and theme. -->
<activity android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:theme="@android:style/Theme.Translucent" />
</application>
</manifest>
新的 AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.example"
android:versionCode="10"
android:versionName="2.0.1"
android:installLocation="internalOnly"
>
<uses-sdk android:minSdkVersion="10" />
<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true"/>
<uses-feature android:name="android.hardware.telephony" android:required="false" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />
<permission android:name="com.test.example.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.test.example.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.android.vending.BILLING" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
>
<!--This meta-data tag is required to use Google Play Services.-->
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
<activity android:name=".Landing" android:label="@string/app_name" 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=".Contact" android:windowSoftInputMode="adjustNothing" android:screenOrientation="portrait"></activity>
<activity android:name=".Notes" android:screenOrientation="portrait"></activity>
<activity android:name=".MainActivity" android:windowSoftInputMode="adjustNothing" android:screenOrientation="portrait"></activity>
<receiver
android:name=".GcmBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<!-- Receives the actual messages. -->
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.test.example" />
</intent-filter>
</receiver>
<service android:name=".GcmIntentService" />
<!--Include the AdActivity configChanges and theme. -->
<activity android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:theme="@android:style/Theme.Translucent" />
</application>
</manifest>
【问题讨论】:
-
你是否更改过最小 sdk 版本?
-
不,我没有改变它
-
您的 MainActivity 不再是 MAIN/LAUNCHER 活动。您确定这不仅仅是旧快捷方式消失/无法启动的问题吗?用户之间的差异可能是由于具有不同的启动器应用程序(不同制造商或手动安装)造成的。如果您有一些有用的用户,您可以要求他们 1:检查应用程序的应用程序抽屉,以及 2:获取错误报告并将其发送给您(以便我们能够看到一些启动失败的日志)。
-
@SnildDolkow 我尝试了你的建议,是的,我遇到了同样的错误。大概就是这个原因。谢谢你的帮助:)
-
很高兴为您提供帮助。我将我的建议作为答案发布,以便有类似问题的人可以更轻松地找到它(例如,它会在搜索结果中显示有答案)。
标签: android android-studio android-manifest