清单中的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/

10-12 03:45