清单中的Launcher / Main活动已更改,并且更新用户使用自定义OS Launcher(即dodol Launcher)报告其快捷方式已损坏,并显示消息“未安装应用程序”。
这是一个很大的问题,因为许多人只是困惑地卸载了该应用程序。
据我了解,发生的事情是启动器捕获了一些有关该快捷方式的附加信息,并且当它在清单中发现与启动器活动不匹配时,便认为应用程序不再存在。
显然,这是一个自定义启动器问题,但似乎已广泛传播,需要为此解决。
我正在尝试将旧活动和新活动都设置为MAIN / LAUNCHER,以查看这是否有影响。
还有其他人遇到过类似的问题吗?
谢谢。
最佳答案
这是我解决此问题的方法。我将LoginActivity
作为主要的启动活动:
<activity android:name=".activities.LoginActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>
我们必须重做一些逻辑,主要是如何开始我们的MAIN活动。我们最终创建了虚拟
LauncherActivity
,并将用户带到应用程序内部或LoginActivity
。因此,升级完成后,我们会遇到完全相同的问题。幸运的是我在发布前就抓住了它。 “未安装应用程序”。解。使用
activity-alias
,进行一些修改,我不确定100%是否需要重命名LoginActivity
。但是我们确实将其重命名为SignInActivity
,这是对我们有用的清单中的最终配置。<activity android:name=".activities.LauncherActivity" android:noHistory="true" android:theme="@android:style/Theme.NoDisplay" />
<!-- Don't brake 2.7.2->3.0.0 shortcuts, keep ALIAS for old way to access app -->
<activity-alias android:name=".activities.LoginActivity" android:targetActivity=".activities.LauncherActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>
<activity android:name=".activities.SignInActivity" />
指向此处-我们确实保留了旧的签名,但是“重新路由”启动程序以使用新的
LauncherActivity
关于android - 更新后Android中断快捷方式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28836116/