私はSDKを作成しており、activity-alias
を作成できるようにしたいと考えています。targetActivity
はSDK内のアクティビティに設定されています。 SDKの特定のアクティビティでインテントフィルタをカスタマイズできるようにするためです。 SDKのマニフェストにActivityXがあれば、私は彼らが自分のアプリのマニフェストにこのようなactivity-alias
を書くことができるようにしたいと思います:アンドロイド:targetActivityがaar/sdkにあるアクティビティエイリアスを作成できるようにする
<activity-alias
android:name="abc"
android:targetActivity="ActivityX">
<intent-filter>
... user's custom intent filter
</intent-filter>
</activity-alias>
私は全体来ている問題があることがtargetActivity
ありますそれrestrictionています「 マニフェストにエイリアスを先行すること...活動要素のname属性と一致しなければなりません」
を
私はSDKのマニフェストに活動を置くか、私は例のアプリのマニフェストでエイリアスを置いた場所に関係なく、エイリアスは常にINSTALL_PARSE_FAILED_MANIFEST_MALFORMED
エラーを引き起こし、最終的なマージされたマニフェストに活動前に来るので、これは問題です。
ActivityXがsdkマニフェストで宣言された直後にインテントフィルタなしでエイリアスを配置し、2つのエイリアスがになり、sdkエイリアスの位置にとどまることを考えてください。しかし、私はそれを行う方法を理解することはできません。うまくいかない理由の1つは、2つのエイリアスが競合しないことがあるということです。
マージソリューションやその他の手法でこれを解決することについて考えていますか?
このような角の場合、Androidライブラリは非常に限られています。なぜあなたはそれをしたいのか分かります。私は分かりませんが、b.android.comにツールチームに機能要求として投稿することをお勧めします –