Android Java プロジェクトは Ant をビルド ツールとして使用するため、Ivy を依存関係管理に使用することは、私にとって自然な選択のように思えます。ただし、基本的なセットアップは正常に機能しますが、奇妙な問題が発生しています。問題を簡単に再現するために、GitHub で既存の例のフォークを作成しました。
ポイントは、依存関係が「libs」ディレクトリに正常にダウンロードされることですが、によって呼び出されたビルド プロセスがant debug
JAR を見つけられないようです。ただし、オーバーロードされた「-pre-build」ターゲットの一部としてではなく、手動で「解決」ターゲットを呼び出すと、正常に機能しant resolve debug
ます。
「-pre-build」が終了する直前にライブラリが実際に「libs」にあることを確認しました(「-pre-build」ターゲットの一部として「libs」内のファイルをリストすることにより)。それらは見つかりません。
再現するには、ant を実行する前に「libs」からライブラリを削除することが重要です。ここで何がうまくいかないのですか?
resolve:
[ivy:retrieve] :: Apache Ivy 2.3.0-rc1 - 20120416000235 :: http://ant.apache.org/ivy/ ::
[ivy:retrieve] :: loading settings :: file = /Users/seschube/development/IvyAndroidExample/ivysettings.xml
[ivy:retrieve] :: resolving dependencies :: com.example#ivy-android-example;0.1
[ivy:retrieve] confs: [default]
[ivy:retrieve] found org.acra#acra;4.2.3 in acra
[ivy:retrieve] found com.google.inject#guice;2.0-no_aop in maven2
[ivy:retrieve] found com.google.zxing.core#core;1.6 in zxing
[ivy:retrieve] :: resolution report :: resolve 115ms :: artifacts dl 5ms
---------------------------------------------------------------------
| | modules || artifacts |
| conf | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
| default | 3 | 0 | 0 | 0 || 4 | 0 |
---------------------------------------------------------------------
[ivy:retrieve] :: retrieving :: com.example#ivy-android-example
[ivy:retrieve] confs: [default]
[ivy:retrieve] 4 artifacts copied, 0 already retrieved (1195kB/76ms)
-pre-build:
[echo] The "libs" directory contains: acra-4.2.3.jar;core-1.6.jar;guice-2.0-no_aop-javadoc.jar;guice-2.0-no_aop.jar
-code-gen:
[mergemanifest] Merging AndroidManifest files into one.
[mergemanifest] Manifest merger disabled. Using project manifest only.
[echo] Handling aidl files...
[aidl] No AIDL files to compile.
[echo] ----------
[echo] Handling RenderScript files...
[renderscript] No RenderScript files to compile.
[echo] ----------
[echo] Handling Resources...
[aapt] Generating resource IDs...
[echo] ----------
[echo] Handling BuildConfig class...
[buildconfig] Generating BuildConfig class.
-pre-compile:
-compile:
[javac] Compiling 3 source files to /Users/seschube/development/IvyAndroidExample/bin/classes
[javac] /Users/seschube/development/IvyAndroidExample/src/com/example/IvyAndroidExampleActivity.java:7: error: package org.acra does not exist
[javac] import org.acra.*;
[javac] ^
[javac] /Users/seschube/development/IvyAndroidExample/src/com/example/IvyAndroidExampleActivity.java:8: error: package com.google.inject does not exist
[javac] import com.google.inject.*;
[javac] ^
[javac] /Users/seschube/development/IvyAndroidExample/src/com/example/IvyAndroidExampleActivity.java:9: error: package com.google.zxing does not exist
[javac] import com.google.zxing.*;
[javac] ^
[javac] 3 errors
BUILD FAILED