【Unity开发小技巧】Unity打包安卓出现两个或多个相同应用appIcon

欢迎加入Unity业内qq交流群:956187480

qq扫描二维码加群


很久之前做Unity跟安卓交互的时候就出现过这个问题,当时也是各种尝试虽然最后解决了但是依然不清楚原理。最近又需要跟android交互就又遇到了这个老坑。其实大部分人是遇不到这个问题的,能遇到这个问题的一般下项目里面都有至少两方的sdk。基本上都是因为在手动合并清单文件AndroidManifest的时候出错的。

现在说明出现的原因:

一个应用程序可以有多个Activity,每个Activity是同级别的,那么在启动程序时,最先启动哪个Activity呢?android.intent.action.MAIN决定应用程序最先启动的Activity 。有些程序可能需要显示在程序列表里,有些不需要。怎么定义呢?android.intent.category.LAUNCHER决定应用程序是否显示在程序列表里。Main和LAUNCHER同时设定才有意义,如果有多个同级的Activity都有过滤器,则会出现多个应用图标。

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

只有最前面的Activity的 <action android:name="android.intent.action.MAIN" /> 有效,启动该程序时,执行的是该Activity。且在程序列表中有多个图标,这些Activity都在程序列表中显示,该Application有多个入口,执行不同的Activity,但是整个程序的主入口(整个程序最先运行的那个activity)只有最先定义的那个Activity,也就是说只有主入口的Icon能正常打开应用,其他Icon触发无效。

现在说明如何解决:

如果想要避免这个问题,我们就要找到全局项目里面的 <category android:name="android.intent.category.LAUNCHER" /,根据逻辑禁用不必要的,只留一个即可,直接删掉就行。

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
代码放置在哪个Activity中,则该界面便为第一个显示的界面。
 


欢迎加入Unity业内qq交流群:956187480

qq扫描二维码加群

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幻世界

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值