2013-08-13 20 views
13

ビルドする(継承した)Androidプロジェクトを取得しようとしています。私はAnt & command line tools(およびIDEA)を使用しています。私はその後、project.propertiesこのAPPCOMPATを持っていることに気づいたv7のappcompat依存関係を正しく定義する方法は?

[...]/res/values/styles.xml:8: error: Error retrieving parent for item: 
No resource found that matches the given name '@style/Theme.AppCompat.Light'. 

:これは私がに走った元のエラーがある

<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light"> 

:など

はのstyles.xmlでは、解決できない参照があります私の(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のインストールには、次のようになります。

enter image description here

+1

を、あなたは 'は/ opt /アンドロイド-SDK-MacOSXの/エクストラ/アンドロイド/サポートにサポートパッケージを持っていますか/ '? – Rajesh

+0

@Rajesh:はい、あります。より具体的には、 '/ opt/android-sdk-macosx/extras/android/support/v7/appcompat /'がうまくインストールされているようです。 – Jonik

答えて

6

私は同じ問題に遭遇したので、私は相対パスを使用してみましたそれは私の問題を解決しました。相対パスのみがandroid.library.referenceで動作するようです。私はこれを確認するためのクイック検索を行い、絶対パスはWindows上のandroid.library.referenceで動作するが、UnixやMacでは動作しないことを示すthis stackoverflow linkに出くわしました。

平和。

+0

ああ、確かに。私は 'android.library.reference.1 = ../../../../../../../opt/android-sdk-macosx/extras/android/support/v7で作業しています。/appcompat' これは 'local.properties'でも動作します。これはすべての開発者にとって同じパスが機能しないため、より良い場所だと思います。 – Jonik

+9

(また、Antビルドを動作させるには、 '/ opt/android-sdk-macosx 'を使用して、appcompatプロジェクトの[build.xmlを生成する](http://stackoverflow.com/a/15718940/56285)/tools /アンドロイド更新プロジェクト-p/opt/android-sdk-macosx-r22.0.1/extras /アンドロイド/サポート/ v7/appcompat') – Jonik

+0

私のプロジェクトディレクトリに 'root => /'をシンボリックリンクして絶対パスを相対パスにすることができます:) – singpolyma

0

あなたのパスがいるようです間違っている(あなたは '互換性'の部分を欠いている)。 V7-APPCOMPATライブラリは私のため

{sdkpath}/extras/android/compatibility/v7/appcompat 

である(SDKツールマックスOS X 10.7.5にバージョン22.0.5)

+1

ええ、私のために、 '{sdkpath}/extras/android'は' support'と 'm2repository'サブディレクトリだけを含んでいます。 (そして '{sdkpath}/extras/android/support/v7/appcompat'は私が必要とするものと思われます。)SDKの一部が欠落している場合、どのようにインストールすればいいですか?私はAndroid SDK Tools 22.0.5も使用しています。 – Jonik

+0

現在のバージョンのサポートライブラリがインストールされていますか? (私たちはこのコメントの時点でバージョン18になっています)SDKアップデートマネージャのGUIを実行することで確認できます(toolsサブディレクトリで 'android'プログラムを実行してください)。サポートライブラリはリストの一番下にあります。 – Patrick

+0

ええ、[Android SDKマネージャーに従って](http://i.stack.imgur.com/adUuX.png)私はAndroidサポートライブラリ、rev 18がインストールされています。 – Jonik

9

As Jay indicated相対のパスはUnix/Macで動作します。 Antのビルドが機能するために

が、私はまた、私の場合には、コマンドandroid update project -p <dir>を使用して、APPCOMPATプロジェクトためgenerate build.xmlに必要な:私のための正確な設定が

/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で動作します。これは、同じパスがすべての開発者にとってうまくいかないため、より良い場所だと思います。)


誰かが示唆したように、私は単に答えに私のcomment 6ヶ月前から推進しました。

ところで、私は実際にAndroidの開発について何か知っているので、私はAntを捨てて、comprarisonで完全に甘いnew Gradle-based build systemを調べる機会がある人に薦めるだろう。 CIに優しく、便利なものを簡単に自動化することができます(さまざまなビルドタイプに異なるパッケージ名とアプリアイコンを使用するなど)。 Stack Overflow will help問題が発生したとき。 Gradleのとサポートライブラリを使用して

、あなたは上記のすべての手間とsimply do飛ばしたい:

dependencies { 
    compile "com.android.support:appcompat-v7:18.0.+" 
} 
+0

また、http:/ /によって記述されているように/opt/android-sdk-macosx-r22.0.1/extras/android/support/v7/appcompat/project.propertiesでtarget = android-19をtarget = android-21に変更する必要がありました。 /stackoverflow.com/questions/26457096/appcompat-v7-r21-returning-error-in-values-xml –

関連する問題