我最近更改了我的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(解决了这个问题?
- 您可以添加包含某些类别的 Intent 过滤器,例如MAIN、LAUNCHER和DEFAULT。像这样:
<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将在此处用作别名。
- 在
- 以后的版本中也会是一样的,例如这个在这里