2

私はEclipseでAndroidプロジェクトを開発しています。library projectで使用される を作成していmain projectます。Main projectファイルを使用しexternal jarます。このexternal jarファイルを mylibrary projectに追加し、 の jar ファイルlibrary projectmain project. その jar ファイルをライブラリ プロジェクトに追加しましたが、ライブラリ プロジェクトをコンパイルすると、そのサイズは変更されず、外部 jar ファイルはライブラリ プロジェクトに埋め込まれません。

つまり、ライブラリと外部 jar を、プロジェクトがリンクできる 1 つのライブラリに結合したいということです。

どうやってやるの?

ありがとう、

4

3 に答える 3

3

ライブラリと外部 jar を、プロジェクトがリンクできる 1 つのライブラリに結合しますか? それは不可能です。2 つのバイナリ (JAR) を結合/リンクするだけで、それらが 1 つのライブラリとして機能することを期待することはできません。ライブラリは静的ではなく動的にリンクされており、各ライブラリは異なるアドレス空間にロードされています。それらを 1 つにしたい場合は、2 つのライブラリ (既存のライブラリと外部 jar) のソースを取得し、それらを 1 つにコンパイルする (つまり、静的リンク) 必要があります。

アップデート:

洞察をくれたセルジュに感謝します。それはまったく真実です。上記の回答は、ライブラリは実行時に JRE によって特定のメモリ位置にロードされるバイナリであり、環境によって計算された位置にロードされる関数/変数でフォーマットされたバイナリであるという境域に基づいていました - 一般的な CS 理論。

あなたのコメントに基づいて、2 つの JAR を組み合わせる方法をググったところ、あなたの方法は正しいようです。

別のSOの答えは次のとおりです。2つのJARを結合します

2番目の回答を確認してください。Manifest.mfファイルについても明確になっています。

于 2013-01-06T09:27:28.543 に答える
0

次の 2 つの方法を使用して、プロジェクトに外部 jar を追加できます。

  1. プロジェクトを右クリックして、に移動しPropertiesます。
  2. Java Build Pathタブでタブを選択しLibraryAdd External JARs..ボタンをクリックして外部jarファイルをプロジェクトに追加します。
  3. をクリックしOKます。

jarもう 1 つの方法は、ファイルをプロジェクトフォルダーにコピーlibsし、ファイルを右クリックしてjar選択することです。Build Path>Add to Build Path.

この方法を試してみてください。

于 2013-01-06T09:18:07.553 に答える
0

これはよくある問題です。ライブラリのスコープとして定義されています。通常、スコープは " Provided "です。これは、ライブラリがJarファイルではなくクラスパス (javac の場合) に含まれている必要があることを意味します。ファイル。

私は Eclipse を使用していないので、どのメニューを見ればよいかわかりません。しかし、それは共通のプロパティです (Apache Maven、IntelliJ などで)。少し検索

簡単に言えば、ライブラリスコープを「コンパイル」に変更します

于 2013-07-27T14:22:09.803 に答える