apk 的 Aapt 转储徽章不会列出活动别名的任何可启动活动



我最近更改了我的Android清单.xml,并进行了以下更改:

  • 将我的主启动器活动的名称更改为 NewMainActivity。
  • 添加了旧活动名称指向新活动的活动别名。

现在,当我做aapt dump badging <apk-path>| grep launchable-activity时,没有输出。这发生在上述更改之后。

<activity
android:name="com.a.b.NewMainActivity"
....
android:launchMode="singleTask" >
</activity>
<activity-alias
android:name="com.a.b.OldMainActivity"
android:launchMode="singleTask" 
android:targetActivity="com.a.b.NewMainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity-alias>
  • 我该如何解决?
  • 是否有任何新版本的aapt(我正在使用Android资产打包工具,v0.2-3051502(解决了这个问题?
  1. 您可以添加包含某些类别的 Intent 过滤器,例如MAINLAUNCHERDEFAULT。像这样:
<activity
android:name="com.a.b.NewMainActivity"
...
android:launchMode="singleTask" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity-alias
android:name="com.a.b.OldMainActivity"
android:launchMode="singleTask" 
android:targetActivity="com.a.b.NewMainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity-alias>

像这样,您的NewMainActivity将正常工作,并将被注册为可启动的活动,并且您的OldMainActivity将在此处用作别名。

  1. 以后的版本中也会是一样的,例如这个在这里

相关内容

最新更新