24

Android SDK ライブラリを開発しています。このライブラリでは、いくつかのアクティビティを宣言して使用しました。今、アプリケーションにライブラリを含めようとしましたが、アプリですべてのライブラリ アクティビティを宣言する必要があることに気付きました。ライブラリには多くのアクティビティが含まれており、開発者はすべてのアクティビティを自分のアプリにコピーする必要があるため、これは非常に悪いことです。これに対する解決策はありますか?

4

2 に答える 2

26

いいえ、これは現時点でライブラリの既知の制限です。Android 開発コミュニティでは、将来的にこれを修正することについて多くの議論がありますが、今のところ、ライブラリの実行方法の制限です。

ドキュメントから

アプリケーション プロジェクトのマニフェスト ファイルでは、ライブラリ プロジェクトからインポートされた、アプリケーションが使用するすべてのコンポーネントの宣言を追加する必要があります。たとえば、、、、、など、および同様の要素を宣言 する<activity>必要が あります。 <service><receiver><provider><permission><uses-library>

また、マーク・マーフィーによる優れた回答もここにあります。

于 2011-02-18T21:51:06.773 に答える
22

更新 1: Gradle を使用すると、マニフェストのマージが自動的に行われるようになりました。それがどのように機能するか、および競合を解決する方法の詳細については、ここを参照してください(guy.gc のコメントに感謝します)。

元の投稿:

このスレッドを更新するには: 自動マージが可能になりました。追加するだけで済みます

manifestmerger.enabled=true

あなたのproject.propertiesに。Android で新しい「manifestmerger」プロパティを使用すると、これについても説明します。

これが古いスレッドであることは知っていますが、偶然見つけたので、他の人 (私を含む) がそれが不可能であると考えないようにしたいと考えています。私のプロジェクトでは、ライブラリを消費するアプリでアクティビティを利用するには、この 1 行で十分でした。

于 2014-05-12T11:46:18.283 に答える