複数のAndroid「サービス」で使用されるJavaライブラリを、ライブラリを各サービスのAPKに含めなくても、それらの独立したサービスでロードできる動的または共有ライブラリに分離しようとしています。
Android サービスの作成や DexLoader と Reflection の使用など、これを行うにはさまざまな方法があることは知っていますが、ライブラリのソースを変更しないようにしています。代わりに、それをビルドして自分のデバイスにインストールしようとしています (基本的に、提供された Android API を拡張します)。
以下は、まだ答えられていない非常によく似た質問です: 共通ライブラリを共有する Eclipse で Android アプリを作成する
これは Google が開示したくないことであることはわかっています。そのため、オンラインで情報を見つけることは非常に困難です。
これまでのところ、単純な「Hello World」プログラムをフレームワークディレクトリの下に配置してビルドし、プログラムのjarを正常に作成しようとしました。次に、product/core.mk にパッケージを追加し、さらに api/10.xml の下にパッケージ定義を追加した後、「make sdk」を実行すると、次のエラー メッセージが表示されました。
******************************
You have tried to change the API from what has been previously released in
an SDK. Please fix the errors listed above.
******************************
make: *** [out/target/common/obj/PACKAGING/checkapi-last-timestamp] Error 38
回避策として、ビルド プロセス中に動的に作成される out ディレクトリ内の "public_api.xml" ファイルにパッケージを追加しました。この回避策により、SDK はエラーなしでビルドされます (ただし、もう一度クリーンアップを行うと、クリーンアップのために削除されるため、public_api.xml を再度変更する必要があります)。ただし、どこでもパッケージをインポートして使用しようとすると、「パッケージが存在しません」と表示されます
どんな助けでも大歓迎です!ありがとうございました!