Android:未安装APK图标

时间:2009-11-09 02:09:00

标签: android menu icons

我可以部署我的应用程序但由于某种原因,我无法在操作系统主页的上拉菜单中显示图标。有谁知道我能做些什么来解决这个问题?

顺便说一句,应用程序显示在“管理应用程序”中,但由于某种原因不会显示为图标。通过Eclipse,我可以在部署之后启动应用程序,但就是这样......之后,我没有办法启动它,因为没有图标。 :(以下是我的清单文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.android.ApplicationName"
      android:versionCode="1"
      android:versionName="2.0">
    <application android:icon="@drawable/icon" 
                 android:debuggable="true"
                 android:label="@string/app_name">
        <activity android:name=".EntrySplash"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.BROWSABLE"></category>  
                <data android:scheme="com.android.ApplicationName"></data> 
            </intent-filter>
        </activity>
        <activity android:name=".EntryScreen" android:label="@string/app_name">
        </activity>         
        <activity android:name=".ApplicationName" android:label="@string/app_name">
        </activity>     
    </application>
    <uses-sdk android:minSdkVersion="3" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest> 

8 个答案:

答案 0 :(得分:8)

我也有这个问题,我认为对我有用的修复方法是我将意图标记分开,如下所示

<intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter>
<intent-filter>
         <category android:name="android.intent.category.BROWSABLE"></category>  
         <data android:scheme="com.android.ApplicationName"></data> 
</intent-filter>

当我改变我的清单文件时,我的图标出现了。

答案 1 :(得分:2)

有同样的问题,发现有一点需要注意的是主要活动标签的正确意图:

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

必须在自己的意图过滤器中。您可能在主活动的意图过滤器中有其他项目,如果是这样,请将其余项目分开到其下方的单独的intent过滤器标记中。将MAIN和LAUNCHER放在一起。

很多关于这个问题的答案似乎都错过了这一点。

希望它有所帮助!

答案 2 :(得分:2)

当你为你的发布活动提供两个类别名称时,它正在发生。您启动的活动在其Intent过滤器中应该只有一个类别名称。但是,如果您还需要Browsable活动,那么您的启动活动可能有2个Intent过滤器,如下所示。

您只需使用Manifest.xml文件中的以下代码替换您的EntrySplash活动代码。

<activity android:name=".EntrySplash"
                  android:label="@string/app_name">
<intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" /> 
            </intent-filter>
<intent-filter>
                <category android:name="android.intent.category.BROWSABLE"></category>  
                <data android:scheme="com.android.ApplicationName"></data> 
            </intent-filter>
</activity>

这肯定会对你有用......

答案 3 :(得分:1)

暂时尝试删除android.intent.category.BROWSABLE<data android:scheme="com.android.ApplicationName">,看看你的图标是否显示。

另外,在一个不相关的问题上,我建议你的uses- *元素是清单的第一个孩子,而不是最后一个。有传闻称Android市场完成了XML解析问题,它希望在任何元素之前看到这些问题。

答案 4 :(得分:1)

SDK v2.2中仍存在此问题。如果您想从Eclipse发布到手机,除了上述建议之外还有一些建议。如果它仍然不起作用并且您不想手动发布,请尝试这些。删除清单中的所有空行。并确保此行只包含图标和标签属性:

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

答案 5 :(得分:0)

显然,如果我使用命令行adb手动安装应用程序,我发现它可以正常工作。因此,如果您更新了ADT插件并遇到问题,只需手动安装即可...

答案 6 :(得分:0)

我发现当我将它们添加到我的项目中时,我的资产有时不会在应用中更新。 有两种方法可以解决此问题:

  1. 清理并重建项目。
  2. 在手机上卸载应用程序,然后使用ADT从头开始安装。
  3. 这很简单!

答案 7 :(得分:0)

为了向CommonsWare的答案添加确认,我刚刚发现了针对2.3.3+项目的确切错误。我不得不删除以下内容:

 <data android:scheme="com.android.ApplicationName"></data>

然后我不得不清理项目。我认为必须每次都使用adb进行安装,这是Manifest出现问题的一个迹象,并且稍后会回来咬你(特别是在市场上)。