0

古いアプリを新しいアプリのライブラリ プロジェクトとして使用しようとしています。ただし、両方がデバイスに同時にインストールされている場合、いくつかの問題があり、公開後に存在するかどうかはわかりません.

古いアプリが A、新しいアプリが B だとしましょう。

A をインストールするだけで、A は正常に動作します。

次に、A をライブラリ プロジェクトとして使用する B をインストールすると (プロジェクト A を「isLibrary」としてチェックした後)、元の A はデバイスで動作しなくなりますが、B は正常に動作します。

ただし、最初に B をインストールしてから A をインストールすると、どちらも正常に動作します。

A を「ライブラリ プロジェクト」として別のアプリに含め、元の「A」の後にインストールすると、元の「A」が無効になるようです!!! (しかし、逆に問題は存在しません)

この問題は公開後に解消されますか? それとも A と B の両方に対してライブラリ プロジェクト C を作成する必要がありますか? それとも、説明されている状況ではこの問題は存在しないのでしょうか (つまり、私は何か他のことを完全に間違っています)。

私がライブラリ プロジェクト C を作成しなかった理由は、関連するすべてのリファクタリングのためであり、私の場合、Eclipse はすべての名前を変更するのに優れた仕事をしていません。

4

1 に答える 1

1

公式の開発ガイドプロジェクトの管理 - ライブラリ プロジェクトを確認してください。

ただし、ライブラリ プロジェクトは、独自の .apk に直接コンパイルして Android デバイスで実行できないという点で、標準の Android アプリケーション プロジェクトとは異なります。同様に、真のライブラリの場合とは異なり、ライブラリ プロジェクトを自己完結型の JAR ファイルにエクスポートすることはできません。代わりに、依存アプリケーションでライブラリを参照してそのアプリケーションをビルドすることにより、ライブラリを間接的にコンパイルする必要があります。


質問に戻る:

A をインストールするだけで、A は正常に動作します。

A はアプリケーション プロジェクト (isLibrary 設定のチェックを外した状態) であるため、A.apk がコンパイルされ、インストールされ、機能します。

次に、A をライブラリ プロジェクトとして使用する B をインストールすると (プロジェクト A を「isLibrary」としてチェックした後)、元の A はデバイスで動作しなくなりますが、B は正常に動作します。

A は現在 Library Project に変更されており (isLibrary 設定にチェックが入っています)、この時点では A.apk はもうありません。B.apk (A がコンパイルされ、B.apk をビルドするときにマージされる) のみがコンパイルされ、インストールされ、動作します。

ただし、最初に B をインストールしてから A をインストールすると、どちらも正常に動作します。

A がライブラリ プロジェクトの場合、Eclipse のような IDE では、エミュレータまたは実際のデバイスで直接コンパイル、インストール、および実行することはできません。A をアプリケーション プロジェクト (isLibrary 設定のチェックを外した状態) に戻すと、A.apk が再びコンパイルされ、インストールされ、動作するようになります。

A を「ライブラリ プロジェクト」として別のアプリに含め、元の「A」の後にインストールすると、元の「A」が何らかの理由で無効になるようです!!! (しかし、逆に問題は存在しません)

基本的に正しいです。詳細については、公式の開発ガイドをご覧ください。

この問題は公開後に解消されますか? それとも A と B の両方に対してライブラリ プロジェクト C を作成する必要がありますか? それとも、説明されている状況ではこの問題は存在しないのでしょうか (つまり、私は何か他のことを完全に間違っています)。

いいえ、はい。プロジェクト A と B の両方をアプリケーション プロジェクトとして作成する場合は、ライブラリ プロジェクト C が必要です (エミュレータまたは実デバイスでコンパイル、インストール、および実行できるようにするため)。

于 2012-04-21T02:53:35.003 に答える