安卓:APK图标未被安装

12

我能够部署我的应用程序,但是不知何故,在操作系统主页的下拉菜单中无法显示图标。有人知道我该怎么解决吗?

另外,我的应用程序在“管理应用程序”中显示,但由于某种原因没有显示为一个图标。通过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> 

图标的详细信息是什么?尺寸、格式等等? - Bostone
图标大小为48x48,格式为png。我之前使用过这个图标,它可以正常工作。但我不知道我做了什么导致这个功能失效了。 - Legend
1
我们遇到了相同的问题,但是这是由一位通过Android市场安装应用程序的三星Galaxy用户报告的,因此您的ADB解决方法对我们不起作用。还有其他建议吗? - mxk
8个回答

10

我也遇到了这个问题,我认为对我有效的修复方法是将意图标签分开,像下面这样:

<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>

当我像这样修改了我的清单文件,我的图标就显示出来了。


2

你给你的启动活动指定了两个类别名称,所以这种情况正在发生。你的启动活动应该在其意图过滤器中只有一个类别名称。但是,如果您还需要可浏览的活动,则您的启动活动可以具有两个意图过滤器如下所示。

你只需要在你的Manifest.xml文件中用下面的代码替换你的EntrySplash Activity代码。

<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>

这对你肯定有效...


2

我遇到了同样的问题,发现主活动标签上正确的意图是一个注意点:

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

必须将其放置在自己的意图筛选器中。您可能在主活动的意图过滤器中有其他项目,如果是这样,请将其余部分分离到一个单独的意图筛选器标记中,就在其下方。将MAIN和LAUNCHER保留在自己的位置。

很多关于此问题的SO答案似乎忽略了这一点。

希望对您有所帮助!


2

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

此外,关于一个无关的问题,我建议您的uses-*元素成为清单文件中的第一个子元素,而不是最后一个。有传言说Android Market所做的XML解析存在问题,它希望在任何其他元素之前看到这些元素。


谢谢,我已经更改了那个...但是它并没有影响到任何东西...我更新了ADT插件后开始注意到这个奇怪的问题。从那时起,图标没有被安装,项目没有被构建或者一直显示有错误,但没有告诉我是什么错误...当我重新启动电脑时,这些错误就会“消失”。 - Legend
那个谣言是真的,我们曾经遇到过同样的问题。但是这个问题有不同的症状,即 Dev Dashboard 应用程序上传会因为错误而失败。 - mxk

1

这个问题在SDK v2.2中仍然存在。如果你想从Eclipse发布到你的手机,除了上面提到的建议外,还有一些额外的建议。如果仍然没有工作,并且你不想手动发布,请尝试以下方法。在清单文件中删除所有空行。并确保此行仅包含图标和标签属性:

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

0
只是为了确认CommonsWare的答案,我刚刚遇到了一个针对2.3.3+项目的确切错误。我不得不删除以下内容:
 <data android:scheme="com.android.ApplicationName"></data>

然后我必须清理项目。 我认为每次都必须使用adb进行安装是Manifest存在问题的迹象,并且将会在以后(特别是在市场中)对你产生影响。


0

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


0

我发现有时候当我将资产添加到我的项目中时,应用程序中的资产不会更新。

你可以通过以下两种方式解决这个问题:

  1. 清理并重新构建项目。
  2. 在手机上卸载应用程序,并使用ADT从头开始安装它。

就这么简单!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接