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刪除后,突然發現沒圖標了,一直以為是新加功能造成的。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM