android:允许创建targetActivity位于aar/sdk中的活动别名

android:允许创建targetActivity位于aar/sdk中的活动别名,android,merge,sdk,alias,aar,Android,Merge,Sdk,Alias,Aar,我正在编写一个SDK,希望开发人员能够创建一个activity别名,其targetActivity设置为我的SDK中的活动。我这样做是因为我希望他们能够自定义SDK中特定活动的意图过滤器。如果在sdk的清单中有ActivityX,我希望他们能够在他们的应用程序清单中编写一个活动别名: <activity-alias android:name="abc" android:targetActivity="ActivityX"> <intent-filter&

我正在编写一个SDK,希望开发人员能够创建一个
activity别名
,其
targetActivity
设置为我的SDK中的活动。我这样做是因为我希望他们能够自定义SDK中特定活动的意图过滤器。如果在sdk的清单中有ActivityX,我希望他们能够在他们的应用程序清单中编写一个
活动别名

<activity-alias
    android:name="abc"
    android:targetActivity="ActivityX">
    <intent-filter>
    ... user's custom intent filter
    </intent-filter>
</activity-alias>
它:

“…必须与以下活动元素的name属性匹配: 位于清单中别名的前面

这是一个问题,因为无论我将活动放置在sdk清单中的何处,或将别名放置在示例应用程序清单中的何处,别名始终位于最终合并清单中的活动之前,从而导致
安装\u解析\u失败\u清单\u格式错误

一个想法是在sdk清单中声明ActivityX之后放置一个没有意图过滤器的别名,并希望这两个别名将保持在sdk别名的位置。但我不知道该怎么做。可能不起作用的一个原因是两个别名可能无法冲突

您是否想过通过合并解决方案或其他技术解决此问题?

在AOSP中提出了相同的解决方案。该问题的解决方法如下所述:

在中手动包含[sdk]中活动的清单条目 应用程序项目的清单,将其放在 活动别名条目

尽管这一解决方案存在以下问题:

。。。跨清单重复代码


项目维护人员似乎认为这个解决方案是足够的。没有迹象表明潜在问题的修复将很快发布。

Android库在这种极端情况下非常有限。我明白你为什么要这么做。我不知道,但我建议你在b.android.com上发布,作为工具团队的功能请求