【问题标题】:Android application icon not showing upAndroid应用程序图标未显示
【发布时间】:2011-01-23 22:16:33
【问题描述】:

我刚刚花了很多时间为我正在开发的 Android 应用程序构建一个图标,但无法让它显示在模拟器中的应用程序中。

我已将其放入 res/drawable-hdpi、res/drawable-mdpi、res/drawable-ldpi 中,大小分别在 http://developer.android.com/guide/practices/ui_guidelines/icon_design_launcher.html 中定义

清单包含以下行:

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

关于它为什么不显示的任何想法?

【问题讨论】:

  • 你的名字是否正确?假设您没有更改清单,默认图标称为 icon.png 并且是一个 android 图标。只需将此图标替换为您自己的图标即可。
  • 然后出现了什么?你有什么错误吗?
  • 我通过重启设备解决了这个问题。 :)
  • 对我来说,解决方案是改变启动器的主题,它已经改变了开发图标。

标签: android sdk icons


【解决方案1】:

我想详细说明@Britton Pentakill 和@arnav bhartiya 的答案,因为我可以使用他们的答案解决我的问题。我在 MainActivity 上添加了更多操作,因为 Android Studio 抱怨“应用程序无法被 Google 索引”,我也希望它可以被索引。

错误AndroidManifest.xml

<intent-filter>
  <action android:name="android.intent.action.MAIN"/>
  <category android:name="android.intent.category.LAUNCHER"/>
  <action android:name="android.intent.action.SEND"/>
  <action android:name="android.intent.action.VIEW"/>
  <category android:name="android.intent.category.BROWSABLE"/>
  <data android:scheme="https"
        android:host="siara.cc"
        android:pathPrefix="/CrossCalc" />
 </intent-filter>

所以当我发布我的应用时,人们在他们的设备上找不到我的应用图标,在 Play 控制台上安装后没有打开按钮,即使它确实通过了审核并在 Play 商店上发布(花了 7 天时间)。

然后当我阅读他们的答案时,我更正了,现在我可以看到打开我的应用程序的图标:

正确:

<intent-filter>
  <action android:name="android.intent.action.MAIN"/>
  <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter>
  <action android:name="android.intent.action.VIEW"/>
  <category android:name="android.intent.category.DEFAULT"/>
  <category android:name="android.intent.category.BROWSABLE"/>
  <data
    android:scheme="https"
    android:host="siara.cc"
    android:pathPrefix="/CrossCalc"/>
</intent-filter>

【讨论】:

  • 为我工作!伙计们,如果您没有正确配置清单,导致您的应用程序不稳定..并且应用程序登陆页面中没有安装按钮 Play 商店!
  • 我也是第一次遇到这种情况。
  • 非常感谢您的解决方案,它对我也有帮助
【解决方案2】:
  1. 确保图标以 icon.png 名称存储在这些文件夹中。
  2. 确保 android 具有可绘制/图标资源。通过查看您的 gen/R.java 文件并查看可绘制内部类中的 public static final int icon = 0x.... 来检查这一点。
  3. 尝试清理您的项目版本并从您的手机/模拟器中卸载任何现有版本的应用,然后重新安装新版本。

【讨论】:

  • 图标没有被命名为icon.png,我把它放在了错误的地方(不替换默认图标)。谢谢大家!
  • 我应该补充一点,它不必被称为 icon.png,但名称必须与您在 android:icon="@drawble/..." 行中选择的任何内容匹配。
  • 我想强调第三步“清理你的项目构建”的一部分:确保你点击 Project/Clean... 并清理你的项目。我的情况就是这样!
  • @Jems 既然你的回答有这么多投票,你能不能也添加以下指针:确保 MAIN 和 LAUNCHER 的意图过滤器没有与其他意图过滤器混合。
【解决方案3】:

注意 Win Myo Htet 对已接受答案的评论。他解决了我的问题。

Jems,既然你的回答有这么多投票,你能添加以下内容吗 指针:确保 MAIN 和 LAUNCHER 的意图过滤器不是 与其他意图过滤器混合。 – Win Myo Htet 2015 年 12 月 6 日 5:47

混合”是关键字。我在我的 AndroidManifest.xml 文件中有意图,以防止所有文件类型在文件选择中可用。虽然它从第二个答案的解决方案开始,但它包含文件选择的额外意图。这阻止了 Android 在安装应用程序时安装我的图标。我想发布这个以防其他人遇到这个问题,因为 Win My Htet 的绝妙建议很容易被忽略,因为它本质上是一个词“mixed

【讨论】:

  • 感谢您指出布里顿。这正是我遇到的问题。
  • 是的,这也可能有问题。谢谢!赞成。确保您只有 MAIN 和 LAUNCHER 意图。否则手机上不会显示应用图标。
【解决方案4】:

确保您的 Launcher Activity 的 Intent 命名为 MAIN,即,

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

此外,将图标添加到您的 Drawable 文件夹中,然后在 Manifest 的应用程序块中引用它。

<application
android:allowBackup="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/AppTheme" >

【讨论】:

  • +1 让人们注意他们的清单文件。由于此文件配置稍有错误,我出现了非常棘手的图标问题。
【解决方案5】:

为了显示图标,您需要替换主题样式中的@drawable,它会起作用

【讨论】:

    【解决方案6】:

    如果您在 Android 5.0 上运行,只需将这些行添加到 MainActivity 内的 onCreate 方法中:

    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setLogo(R.drawable.ic_launcher);
    getSupportActionBar().setDisplayUseLogoEnabled(true);
    

    这可能对你有帮助。

    【讨论】:

      【解决方案7】:

      我最近遇到了类似的问题,我最终发现有两个原因:

      • 文件扩展名:为了更安全,请始终使用 .png 格式。其他一些格式实际上适用于某些设备(例如,使用 .jpg 图标仍然显示在我的 Infinix note 4 手机上)但 .png 文件保证适用于所有设备。

        李>
      • 存储位置:您的图标文件应位于可绘制文件夹中。请记住仔细检查您的清单文件是否也指向您保存可绘制对象的位置。

      我希望这会有所帮助.. 编码愉快!

      【讨论】:

        【解决方案8】:

        添加这个:

        android:roundicon also
        

        【讨论】:

        • 我的清单上确实有这个,但仍然没有解决 OP 发布的问题。
        【解决方案9】:
        <manifest ...>
        
            <application
                android:icon="..."
                android:roundIcon="..."/>
        </manifest>
        

        在应用程序清单的应用程序中有两个属性,图标和圆形图标。一个用于调试,另一个用于发布。

        【讨论】:

        • 它不是一个用于调试,另一个用于发布,它的工作方式如下:如果您的手机主题有方形图标,它将从属性 "icon"获取应用程序图标> 如果你的手机主题有圆形图标,那么它会从属性 "roundIcon" 中获取应用图标。
        • 移除圆形图标为我铺平了道路,但就像 syed 所说的那样,它不适用于调试/测试。
        【解决方案10】:

        在我的情况下,在所有 mipmap 文件夹中同时分配 ic_launcher 和 ic_launcher_round 后,我必须删除以下文件夹“mipmap-anydpi-v26”才能显示应用图标。

        【讨论】:

          【解决方案11】:

          在意图过滤器标签中,仅允许操作和类别,不允许其他 标签。如果意图过滤器标签中有任何错误的标签,那么您将无法打开和 在手机中查看您的应用程序。

          <intent-filter>
                          <action android:name="android.intent.action.MAIN" />
                          <category android:name="android.intent.category.LAUNCHER" />
          <!--                <action android:name="android.intent.action.SENDTO" />-->
          <!--                <data android:scheme="mailto" />-->
                          <category android:name="android.intent.category.DEFAULT" />
                      </intent-filter>
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-02-13
            • 2015-11-05
            相关资源
            最近更新 更多