Значок Aapt dump apk не отображает никакой активности для псевдонима активности
Недавно я изменил свой AndroidManifest.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 Asset Packaging Tool, v0.2-3051502), в которой эта проблема решена?
1 ответ
- Вы можете добавить фильтр намерений с некоторыми категориями, такими как 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 будет работать здесь как псевдоним.
- Так же будет и в более поздних версиях, как, например, здесь