(継承された)Androidプロジェクトをビルドしようとしています。 Antとコマンドラインツール (およびIDEA)を使用しています。
Styles.xmlには、次のような解決できない参照があります。
<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
これは私が遭遇した元のエラーです:
[...]/res/values/styles.xml:8: error: Error retrieving parent for item:
No resource found that matches the given name '@style/Theme.AppCompat.Light'.
次に、project.properties
にこのappcompat参照があり、(OS X)マシンで壊れていることに気付きました。
target=Android-18
Android.library.reference.1=../../../../adt-bundle-linux-x86_64/sdk/extras/Android/support/v7/appcompat
${sdk.dir}
に関連する参照を作成して、これを修正しようとしました。
Android.library.reference.1=${sdk.dir}/extras/Android/support/v7/appcompat
これで、そのパスは正しいはずです。しかし今、私がant debug
を実行すると:
BUILD FAILED
/opt/Android-sdk-macosx/tools/ant/build.xml:573:
/opt/Android-sdk-macosx/extras/Android/support/v7/appcompat resolve to a
path with no project.properties file for project /Users/joka/devel/project/
それで、何かアイデアはありますか?このプロジェクトを構築する最も簡単な方法は何ですか?
(Ecplise固有のアドバイスは私には役に立たないことに注意してください。)
編集:Android SDKのインストールは次のようになります:
同じ問題が発生したので、相対パスを使用してみたところ、問題は解決しました。相対パスのみがAndroid.library.referenceで機能するようです。これを確認するためにクイック検索を行ったところ、 このstackoverflowリンク が見つかりました。これは、絶対パスがWindowsではAndroid.library.referenceで機能するが、UnixやMacでは機能しないことを示しています。
平和。
Jayが示したように 、relatedパスのみがUnix/Macで機能します。
Antビルドが機能するためには、コマンドbuild.xml
を使用して、 Android update project -p <dir>
を生成appcompatプロジェクトも必要でした。
/opt/Android-sdk-macosx/tools/Android update project
-p /opt/Android-sdk-macosx-r22.0.1/extras/Android/support/v7/appcompat
私の正確な構成は次のとおりです。
Android.library.reference.1=../../../../../../../opt/Android-sdk-macosx/extras/Android/support/v7/appcompat
(これはlocal.properties
でも機能します。同じパスがすべての開発者に機能するとは限らないため、これはより良い場所だと思います。)
誰かが提案したように、私は6か月前の コメント を回答に昇格させただけです。
ちなみに、私は実際にAndroid開発について何かを知っているので、Antを捨てて、 new Gradle-ベースのビルドシステム これは比較すると完全に優れています。CIに対応しており、便利なものを簡単に自動化できます(ビルドタイプごとに異なるパッケージ名やアプリアイコンを使用するなど)。 スタックオーバーフロー助けになります 問題が発生したとき。
Gradleでサポートライブラリを使用すると、上記の煩わしさをすべてスキップし、 単に行う :
dependencies {
compile "com.Android.support:appcompat-v7:18.0.+"
}
パスが間違っているようです(「互換性」の部分がありません)。 v7-appcompatライブラリは
{sdkpath}/extras/Android/compatibility/v7/appcompat
私にとって(Max OS X10.7.5上のSDKToolsバージョン22.0.5)