zoukankan      html  css  js  c++  java
  • android程序安装后图标不显示

    本文主要介绍android应用程序安装后图标不显示的几个可能原因。

     

    自己写的程序突然安装后图标不见了,在应用程序安装中能找到,但是桌面上就是没有图标,启动只能从最近列表中其中。。一般这种情况只会在服务类程序和测试程序中出现,因为不需要图标。

     

    google无果,自己二分调试解决了,并测试了其他网友提供的其他会出错原因,大致总结如下:

    1、AndroidManifest中application元素属性设置问题

    属性设置错误

    <application android:icon="@drawable/icon" android:label="@string/app_name">

    设置图标为icon,而上面的icon资源文件不存在

    解决方法:添加icon资源文件

     

    2、AndroidManifest中 没有activity设置android.intent.category.LAUNCHER category或android.intent.action.MAIN action

    AndroidManifest没有任何activity设置了

    <category android:name="android.intent.category.LAUNCHER" />

    和<action android:name="android.intent.action.MAIN" />

    在运行时候你会发现如下提示信息,表示异步执行

    [2012-03-25 ……] No Launcher activity found!

    [2012-03-25 ……] The launch will only sync the application package on the device!

    而程序已经安装在列表中,但并没有图标而且也没有将android.intent.action.MAIN属性的activity执行显示在屏幕最前端。

    解决方法:在主activity中添加这两个属性

    关于这两个属性的意思更多请参考:

     

    3、main intent-filter同时配置了不同种类的action和data,配置如下

    <activity android:name=".AccountManageActivity">
    	<intent-filter>
    		<action android:name="android.intent.action.MAIN" />
    		<category android:name="android.intent.category.LAUNCHER" />
    		<data android:scheme="aone" android:host="AccountManageActivity" />
    	</intent-filter>
    </activity>

    有网友说这种方式无法启动,但经过自己测试能启动只是不会显示图标而已

    解决方法:分为两个intent-filter,如下

    <activity android:name=".AccountManageActivity">
    	<intent-filter>
    		<action android:name="android.intent.action.MAIN" />
    		<category android:name="android.intent.category.LAUNCHER" />
    	</intent-filter>
    	<intent-filter>
    		<data android:scheme="aone" android:host="AccountManageActivity" />
    	</intent-filter>
    </activity>

    原因为intent-filter表示activity接受怎样的intent,定义在一个intent-filter中的条件必须都满足才能按照该intent-filter启动,否则按照其他intent-filter启动。而以上明显是两类启动方式,所以必须分开。通过这个介绍可以知道其他的action、category、data冲突也有可能导致这个问题

     

    我本地是最后一个原因,调试n久,因为最开始写时没加data,这个时候图标已经创建,加完data之后图标仍然在,只不过是第一个创建好的,所以一直没发现,加了一些新功能原来的apk删除后,突然发现没图标了,一直以为是新加功能造成的。。。

  • 相关阅读:
    常用正则表达式(数字、字符、固定格式)
    阿里云serverless使用笔记
    http的get请求与post请求区别
    HTTPS各版本安全策略HTTPS1_1_TLS1_0、HTTPS2_TLS1_0、HTTPS2_TLS1_2
    REST式的web服务
    JAVA Remote Object
    AJAX的核心XMLHttpRequest对象
    SQL中TOP,LIMIT,ROWNUM的用法
    半双工模式和全双工模式
    win7系统网卡驱动正常,网线连接设备正常,但电脑右下角网络图片显示一直在转圈或者显示一个黄色感叹号的解决办法
  • 原文地址:https://www.cnblogs.com/firecode/p/2679238.html
Copyright © 2011-2022 走看看