Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[问答] 华为手机应用图标消失 #726

Open
danielzwhe opened this issue Nov 4, 2018 · 19 comments
Open

[问答] 华为手机应用图标消失 #726

danielzwhe opened this issue Nov 4, 2018 · 19 comments

Comments

@danielzwhe
Copy link

童鞋们,有遇到过华为手机上应用的桌面图标突然消失的情况吗?

设备:HUAWEI-P20、HUAWEI-P20 pro、麦芒
系统版本:EMUI 8.x (Android 8.x)

在以上三个设备上出现了安装应用后,一段时间后(几个小时、一天、几天等),偶尔出现应用的图标消失了的情况。其实应用是还在手机上的,但是在华为桌面上无法找到启动的图标。只能从 "设置" -> "应用管理" 里面把应用删除了重新安装。

这个问题是出现在用户的设备上,没有任何的异常日志上报,我们用了相同的 EMUI 测试机也无法重现这个问题。网上搜的回答一部分说的是华为手机的隐藏应用的功能,另外一部分说是华为桌面的缓存问题。但是按照这两个问题的解决方案去操作了,都无法将消失的图标显示出来,可以排除不是应用被隐藏了,也不是桌面缓存数据导致图标消失的。

实在想不明白,会有什么因素会导致图标消失的呢?

@JianYiLead
Copy link

你这个有点神奇,我是安装debug和release的包会导致图标不见,可通过清除桌面缓存解决,期待更好的回复

@SivanLiu
Copy link

手机重启应该就好了

@danielzwhe
Copy link
Author

问题已经解决了,修改了一下 scheme 配置。

修改前:

<activity
    android:name=".SplashActivity"
    android:alwaysRetainTaskState="true"
    android:exported="true"
    android:launchMode="singleTop"
    android:screenOrientation="portrait"
    android:theme="@style/SplashTheme">
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>

        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="android.intent.category.BROWSABLE"/>

        <data android:scheme="file" android:mimeType="application/*" />
    </intent-filter>
</activity>

修改后

<activity
    android:name=".SplashActivity"
    android:alwaysRetainTaskState="true"
    android:exported="true"
    android:launchMode="singleTop"
    android:screenOrientation="portrait"
    android:theme="@style/SplashTheme">
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>

        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="android.intent.category.BROWSABLE"/>

        <data android:scheme="file" android:host="*" android:mimeType="*/*"/>
        <data android:pathPattern=".*\\.pdf"/>
        <data android:pathPattern=".*\\.doc"/>
        <data android:pathPattern=".*\\.docx"/>
        <data android:pathPattern=".*\\.xls"/>
        <data android:pathPattern=".*\\.xlsx"/>
        <data android:pathPattern=".*\\.ppt"/>
        <data android:pathPattern=".*\\.pptx"/>
        <data android:pathPattern=".*\\.jpg"/>
        <data android:pathPattern=".*\\.jpeg"/>
        <data android:pathPattern=".*\\.png"/>
        <data android:pathPattern=".*\\.bmp"/>
        <data android:pathPattern=".*\\.webp"/>
    </intent-filter>
</activity>

@xybean
Copy link

xybean commented Dec 5, 2018

@hzwplus 你好 我试过了将android.intent.action.VIEW相关的配置都去掉 依然没有解决问题。可以分享一下你的其他一些配置吗,比如targetversion minversion 以及 gradle的版本等

@danielzwhe
Copy link
Author

@xybean

compileSdkVersion 27
buildToolsVersion '26.0.2'
minSdkVersion 19
targetSdkVersion 23

gradle :4.6.0

@xybean
Copy link

xybean commented Dec 10, 2018

@hzwplus 试了一下,还是不行,请问你还可以提供与这个问题相关的其他思路吗?

@danielzwhe
Copy link
Author

@xybean 你也可以尝试联系华为的技术支持,他们可以提供帮助的,虽然回复有点慢。我的问题就是启动 activity 的 scheme 的配置问题,还真想不到其他的思路了。

@qsw-net
Copy link

qsw-net commented Jul 1, 2019

微信打开文件,用其他应用打开 不显示自己的应用图标,是不是也是activity 的 scheme 的配置问题,华为的技术支持在哪

@xybean 你也可以尝试联系华为的技术支持,他们可以提供帮助的,虽然回复有点慢。我的问题就是启动 activity 的 scheme 的配置问题,还真想不到其他的思路了。

微信打开文件,用其他应用打开 不显示自己的应用图标,是不是也是activity 的 scheme 的配置问题,华为的技术支持在哪

@qsw-net
Copy link

qsw-net commented Jul 1, 2019

@hzwplus 微信打开文件,用其他应用打开 不显示自己的应用图标,是不是也是activity 的 scheme 的配置问题

@xybean
Copy link

xybean commented Jul 1, 2019

@givemeatry 如果你们的App中有配置的话,可以先尝试去掉这一配置测试下。
在华为的手机上是无法配置application相关的通配符的。

@ljuns
Copy link

ljuns commented Jul 3, 2019

遇到过一种情况:一开始桌面图标放在 drawable 里面,华为手机安装应用后在桌面找不到应用图标,在设置的应用列表可以看到应用是有安装。解决方法:需要把桌面图标放在 mipmap 中

@qsw-net
Copy link

qsw-net commented Jul 3, 2019 via email

@itpers
Copy link

itpers commented Sep 27, 2019

遇到过一种情况:一开始桌面图标放在 drawable 里面,华为手机安装应用后在桌面找不到应用图标,在设置的应用列表可以看到应用是有安装。解决方法:需要把桌面图标放在 mipmap 中

我也遇到了这个请问, 请问你找到解决办法了么?

@kilo-swodh
Copy link

试试自适应图标?

@cxMax
Copy link

cxMax commented Nov 7, 2019

我的是微信打开 scheme协议问题 显示不出应用图标,你这种情况我好像还没有

---原始邮件--- 发件人: "ljuns"[email protected] 发送时间: 2019年7月3日(星期三) 下午5:11 收件人: "android-cn/android-discuss"[email protected]; 抄送: "Mention"[email protected];"givemeatry"[email protected]; 主题: Re: [android-cn/android-discuss] [问答] 华为手机应用图标消失 (#726) 遇到过一种情况:一开始桌面图标放在 drawable 里面,华为手机安装应用后在桌面找不到应用图标,在设置的应用列表可以看到应用是有安装。解决方法:需要把桌面图标放在 mipmap 中 — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

我通过这个方式解决了, 我们之前launcher在drawable里面,替换了mipmap,就好了

@cxMax
Copy link

cxMax commented Nov 7, 2019

其实还是需要适配“Android桌面快捷方式”, 待完全解决后,提出解决方案。 目前已找到明确复现路径和步骤

@hellowmq
Copy link

hellowmq commented Dec 30, 2019

我来提供一种场景,希望对一些问题有帮助:

应用中存在两个或者以上的启动图标(含有开发工具的入口),部分图标仅在release或debug 包中出现。这时,使用 release 包覆盖安装 debug 包会导致所有启动图标同时消失。

此时华为桌面不更新图标缓存,重新布局桌面图标可以更新缓存从而图标会再次出现。

@cxMax
Copy link

cxMax commented Dec 31, 2019

我来提供一种场景,希望对一些问题有帮助:

应用中存在两个或者以上的启动图标(含有开发工具的入口),部分图标仅在release 包中出现。这时,使用 release 包覆盖安装 debug 包会导致所有启动图标同时消失。

此时华为桌面不更新图标缓存,重新布局桌面图标可以更新缓存从而图标会再次出现。

是的, 我的必现路径也是这样的

@Caij
Copy link
Member

Caij commented Oct 10, 2020

我来提供一种场景,希望对一些问题有帮助:

应用中存在两个或者以上的启动图标(含有开发工具的入口),部分图标仅在release或debug 包中出现。这时,使用 release 包覆盖安装 debug 包会导致所有启动图标同时消失。

此时华为桌面不更新图标缓存,重新布局桌面图标可以更新缓存从而图标会再次出现。

这样场景的确存在这个问题
通过adb shell pm enable com.huawei.android.launcher 可以刷新桌面

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests