Ich schreibe ein SDK und möchte, dass Entwickler einen activity-alias
erstellen können, dessen targetActivity
auf eine Aktivität in meinem SDK eingestellt ist. Ich mache das, weil ich möchte, dass sie den Intent-Filter für eine bestimmte Aktivität im SDK anpassen können. Wenn in dem Manifest des sdk es ActivityX ist, würde Ich mag sie in der Lage sein, ein activity-alias
wie dies in ihre App-Manifest zu schreiben:android: Erlaube die Erstellung eines Aktivitäts-Alias, dessen targetActivity in einem aar/sdk ist
<activity-alias
android:name="abc"
android:targetActivity="ActivityX">
<intent-filter>
... user's custom intent filter
</intent-filter>
</activity-alias>
Das Problem, das ich komme bin über ist, dass die targetActivity
hat die restriction, dass es: „... den Namen Attribut eines Aktivitätselement übereinstimmen muss, dass die Aliasnamen im Manifest vorangeht“
Dies ist ein Problem, denn egal, wo ich die Aktivität in Manifest sdk platzieren oder wo ich die Alias in einem Beispiel-App Manifest zu platzieren, kommt die Alias immer vor der Aktivität in dem letzten fusionierten manifest einen INSTALL_PARSE_FAILED_MANIFEST_MALFORMED
Fehler verursacht .
Eine Idee ist es, einen Alias ohne Intent-Filter zu setzen, kurz nachdem ActivityX im sdk-Manifest deklariert wurde und hoffe, dass die beiden Aliase merged together sind und in der Position des SDK-Alias bleiben. Aber ich kann nicht herausfinden, wie das geht. Ein Grund, der möglicherweise nicht funktioniert, ist, dass zwei Aliase möglicherweise nicht in Konflikt stehen können.
Haben Sie Gedanken, dies über eine Merge-Lösung oder eine andere Technik zu lösen?
Android-Bibliotheken sind in solchen Fällen sehr begrenzt. Ich kann verstehen, warum du das willst. Ich habe keine Ahnung, aber ich würde vorschlagen, dass Sie in b.android.com als Feature-Anfrage an das Tool-Team schreiben –