App运行,手机上没有显示icon

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冲突也有可能导致这个问题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容