12

アプリケーション プロジェクトによって参照されている Android ライブラリ プロジェクトがあります。ライブラリ プロジェクトには、Applicationいくつかの初期化を行った基本クラスを拡張するカスタム クラスがあります。問題は、ライブラリ プロジェクトのマニフェスト ファイルに正しく登録したにもかかわらず、このクラスが自動的に呼び出されないことです。を使用して呼び出してみました

 MyApplication app = new MyApplication();
 app.onCreate();

しかし、これによりヌルポインタ例外が発生します。

私が思うに、アプリケーション クラスはライブラリ プロジェクトで自動的に呼び出されません。これが本当なら、ライブラリ プロジェクトから手動で呼び出すより良い方法は何ですか?

4

1 に答える 1

9

これは、Android ライブラリ プロジェクトの制限です。ライブラリ プロジェクトの AndroidManifest.xml は、そのライブラリを使用するプロジェクトでは事実上無視されます。

<activity>したがって、 、<service>、およびその他のタグをエンド アプリケーションのマニフェストに配置する必要があります。

: 上記は 2013 年には当てはまりましたが (ビルド システムとして Ant を使用している場合は依然として当てはまります)、Android Gradle プラグインは AAR ライブラリのマニフェストをマニフェストに自動的にマージします。

于 2013-05-22T14:45:55.677 に答える