96

状況:

Java ライブラリを使用するつもりで、Maven リポジトリのAARファイルしか持っていませんが、 JARファイルが必要です。

背景ストーリー:

ライブラリをコンパイルしようとしましたが、Gradle の構造が不安定でした。そこで、コンパイル済みの jar ファイルを要求したところ、その開発者が Maven リポジトリから aar ファイルを渡してくれました (開発者は自分のプロジェクトをコンパイルできませんでした)。Gradle の構成は混乱しており、複数のライブラリに依存しており、Gradle はいくつかの例外をスローしました。

IDEA IDE で使用しようとしましたが、認識されませんでした。ライブラリ プロジェクトは、jar ファイルにコンパイルできるはずですよね。

質問:

その AAR ファイルを JAR ファイルに変換するにはどうすればよいですか?

4

8 に答える 8

151

AARファイルは、JARファイルといくつかのリソース ファイルで構成されます (基本的には、カスタム ファイル拡張子を持つ標準の zip ファイルです)。変換する手順は次のとおりです。

  1. 標準の zip 抽出を使用して AAR ファイルを抽出します (名前を*.zipに変更して簡単にします)。
  2. 抽出されたファイルでclasses.jarファイルを見つけます
  3. 好きなように名前を変更し、そのjarファイルをプロジェクトで使用します
于 2014-01-31T16:35:56.767 に答える
15

他の多くの人が指摘しているように、リソースが不足している可能性があるため、.aar ファイルから .jar を抽出するだけでは十分ではありません。

私にとってうまくいった手順は次のとおりです(Androidのコンテキスト、他の目的がある場合、マイレージは異なる場合があります):

  1. .aar ファイルの名前を .zip に変更して解凍します。
  2. 抽出されたフォルダーは、若干の変更を加えて Eclipse にインポートできる ADT プロジェクトです (以下を参照)。
  3. 解凍したフォルダーに含まれるファイルclasses.jarの名前を好きな名前に変更し (この例では myProjectLib.jar)、解凍したフォルダー内の lib フォルダーに移動します。
  4. Eclipse がそれを受け入れるようにするには、解凍したフォルダーのルートに 2 つのファイルを配置する必要があります。
    • 。事業
    • .classpath
  5. これを行うには、Eclipse で新しい Android ダミー プロジェクトを作成し、ファイルをコピーするか、既存の Android プロジェクトからコピーします。
  6. .project ファイルを開き、XML 名タグを探し、その内容を myProjectLib (または上記の jar ファイルと呼んだもの) に置き換えて保存します。
  7. Eclipse では、[ファイル] -> [新規] -> [プロジェクト] -> [既存のソースからの Android プロジェクト] を選択して、抽出されたフォルダーの内容をポイントできます。
  8. インポート後、新しく作成したプロジェクトを右クリックし、Properties -> Androidを選択し、 Is Libraryをチェックします。
  9. ライブラリを使用するメイン プロジェクトで、[プロパティ] -> [Android ] に移動し、新しく追加した myProjectLib を依存関係のリストに追加します。
于 2016-06-10T11:35:55.980 に答える
6

Android Studio (version: 1.3.2) allows you to seamlessly access the .jar inside a .aar.

Bonus: it automatically decompiles the classes!

Simply follow these steps:

  1. File > New > New Module > Import .JAR/.AAR Package to import you .aar as a module

  2. Add the newly created module as a dependency to your main project (not sure if needed)

  3. Right click on "classes.jar" as shown in the capture below, and click "Show in explorer". Here is your .jar.

access .jar from .aar

于 2015-09-23T14:20:52.540 に答える
5

リソースベースの .aar プロジェクト

.aar ファイル内で classes.jar ファイルを見つけるのは簡単です。ただし、.aar-project でいくつかのリソースが定義されている場合 (例: R.layout.xyz)、そのアプローチは機能しません。

  • そのため、 CommonsGuyの親愛なる方々のおかげで、有効な ADT フレンドリーなプロジェクトを .aar ファイルから取得することができました。私の場合、 subsampling-scale-image-viewを変換しました。私の PC に ruby​​ をセットアップするのに約 1 時間かかりました。

  • 別のアプローチは、CommonsGuy が彼のブログに書いているように、 Eclipse/ADT に android-maven-plugin を使用することです。

  • さらに別のアプローチとして、必要なプロジェクト全体を git からソースとして複製し、それを「既存の Android プロジェクト」としてインポートすることもできます。

于 2016-01-06T15:29:41.757 に答える