1. ホーム
  2. android

[解決済み] Android ライブラリのビルドに失敗しました。ローカルな .aar ファイルの直接依存はサポートされていません。

2023-05-22 07:24:53

質問

最近、Android Gradle Plugin 4.0.0-beta03 にアップグレードしました。私たちのライブラリ モジュールの 1 つを構築する際に、このエラーが発生しました。

$ ./gradlew library_module:assemble

タスク ':library_module:bundleDebugAar' の実行に失敗しました。
AAR をビルドする際、ローカルの .aar ファイルの直接依存はサポートされていません。
AAR をビルドするときに、ローカルの .aar ファイルに直接依存することはサポートされていません。
ファイル依存のクラスと Android リソースがパッケージ化されないため、AAR が壊れてしまいます。以前のバージョンの Android 
Gradle Plugin の以前のバージョンは、この場合にも壊れた AAR を生成します(このエラーは発生しませんが)。以下のような 
library_module プロジェクトの以下の直接的なローカル .aar ファイル依存がこのエラーを引き起こしました。
______.aar

私は、これが に追加されました。 に追加されたことがわかります。しかし、その理由についての詳細な情報は提供されていません。

だから

  1. 何が問題だったのでしょうか?もっと詳しい情報は?どこにもバグレポートが見当たりません。
  2. 具体的にどのようにこれを修正すればよいのでしょうか。これは、他のローカル .aar に依存する 1 つの .aar をビルドできないということですか?このローカル aar が Maven Central または別のリモート リポジトリでホストされていた場合はどうなりますか。なぜそれが違いを生むのでしょうか?

どのように解決するのですか?

私は最近同じ問題に遭遇しました、解決策は、ライブラリを libs/ から削除し、インポートするには File -> New -> New Module -> Import .JAR/.AAR Package でインポートし、ライブラリモジュールでそれを参照する build.gradle ファイルで参照します。

dependencies {
  implementation project(":imported_aar_module")
}

新しいAndroid Studioのバージョン(4.0.0以上)を使用している場合、このオプションは利用できません。代わりに、手動で行う必要があります。

  1. 新しいディレクトリを作成し、以下の内容を build.gradle ファイルに記述します。
configurations.maybeCreate("default")
artifacts.add("default", file('[nameOfTheAar].aar'))

  1. を配置します。 aar をこの新しいディレクトイに配置します。その隣に build.gradle ファイルを作成します。
  2. 新しく作成したGradleプロジェクトを settings.gradle ファイルに追加します。
include(":pathToTheCreatedDirectory")

  1. を使用したいプロジェクトをライブラリにインクルードします。 aar :
implementation project(":pathToTheCreatedDirectory", configuration = "default")