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

 

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

 

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

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

属性设置错误

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

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

 

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

AndroidManifest没有任何activity设置了

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

[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,配置如下

Xml代码  
  1. <activity android:name=".AccountManageActivity">  
  2.     <intent-filter>  
  3.         <action android:name="android.intent.action.MAIN" />  
  4.         <category android:name="android.intent.category.LAUNCHER" />  
  5.         <data android:scheme="aone" android:host="AccountManageActivity" />  
  6.     intent-filter>  
  7. activity>  

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

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

Xml代码  
  1. <activity android:name=".AccountManageActivity">  
  2.     <intent-filter>  
  3.         <action android:name="android.intent.action.MAIN" />  
  4.         <category android:name="android.intent.category.LAUNCHER" />  
  5.     intent-filter>  
  6.     <intent-filter>  
  7.         <data android:scheme="aone" android:host="AccountManageActivity" />  
  8.     intent-filter>  
  9. activity>  

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

 

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

更多相关文章

  1. Android自定义控件以及控件属性的自定义
  2. Android(安卓)Intent:不同应用程序之间通信的桥梁
  3. Android(安卓)资源和国际化 [复制链接]
  4. HttpURLConnection 详解
  5. Activity设置为对话框属性时(Theme.Dialog)时,改变其在屏幕中的位置
  6. Android图表控件MPAndroidChart,折线图LineChart最简单的使用.
  7. Android自定义属性时format选项( )
  8. 一些经典的android博客或是android小型程序
  9. 2019-02-25(android)

随机推荐

  1. android历史版本对应的api等级
  2. Android(安卓)解决Toast的延时显示问题
  3. SMS Library in Android
  4. Android(安卓)打开Activity后,不显示键盘
  5. android认识
  6. Android几款著名的ActiveSync客户端
  7. Android(安卓)SDK Tools R15 发布
  8. Android(安卓)通信录中的联系人操作
  9. 国内目前最全面的介绍——Android中的Bro
  10. Spinner下拉位置处理