图/文 听鬼哥说故事
有时候遇到的游戏,不知道是游戏公司问题,还是分发渠道后的问题,游戏安装后竟然会不显示图标。当然,这对于病毒和木马来说是很重要的,也是很好的隐藏手段,不过对于正常应用和游戏来说就需要处理这个问题了。
遇到这个问题,有几种可能:
1.游戏没有设置icon
2.游戏没有设置主类
3.主类里面有其他data或filter影响
下面来进行测试:
一个正常的AndroidManifest.xml文件是这个样子的,如下图:
第一钟方式:
我们在程序开发中将icon删除掉,程序会正常运行,而图标变为系统的小机器人。如下:
<application
android:allowBackup="true"
android:icon="@drawable/ggg"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
于是,把Eclipse工程中bin目录下的apk来导出来,反编译它,在xml文件中将icon设置的名字修改,回编译程序会报错如下:
说明这种方式是不可行的,也就是我们遇到的没有图标的游戏或应用,用这种方式无法还原。
第二种方式:
我们先删除掉主类的这个字段
<category android:name="android.intent.category.LAUNCHER" />
这里还有一种情况:
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
即把LAUNCHER进行一些改动,如上面所示.
在进行安装的时候,在控制台会提示:
然后程序没有启动,无图标。
接着,我们恢复这个字段,然后删除Main字段:
效果同上面效果一样,无图标。
这种情况一般我们是会遇到的,尤其是遇到分渠道的游戏或者应用,使用他们自己的打包工具时,可能会遇到,这里需要注意。
第三种方式:
我们在主类的里面添加如下代码
<activity
android:name="com.example.testicon.MainActivity"
android:label="@string/app_name" >
<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>
Eclipse运行程序,发现程序会启动,而手机界面却没有图标产生。
在自己开发程序,或者是反编译程序的时候,出现的这种情况是比较多的,也是比较常见的,而且这钟情况,不熟悉开发知识的新同学可能不会了解这个,而把问题归结于其他情况,这点一定要注意。