2011-12-06 4 views
7

Androidプロジェクトが3つのアンドロイドライブラリに依存しています。 Gradleのタスクに依存するだけで使用されているこのプロジェクトの

split.density=false 
android.library.reference.2=..\\LibB 
proguard.config=proguard.cfg 
android.library.reference.1=..\\\\LibA\\\\ 
# Project target. 
target=android-5 
android.library.reference.3=../LibC 


のbuild.xml:それはproject.propertiesファイルは次のようになります

<target name="-pre-build" depends="preBuild" /> 
<target name="-pre-compile" depends="preCompile" /> 

<import file="${sdk.dir}/tools/ant/build.xml" /> 


をし、build.gradleプロジェクトのbuild.xmlを含み次のように:

ant.property(file: 'local.properties') 

configurations { 
    sdkDir = ant.properties['sdk.dir'] 
} 

ant.importBuild "build.xml" 


私は「リリース」は、標的と、このスクリプトを実行すると、私はAから次のエラーを取得しますndroidのbuild.xmlファイル:

[ERROR] [org.gradle.BuildExceptionReporter] Execution failed for task ':-build-setup'. 
[ERROR] [org.gradle.BuildExceptionReporter] Cause: The following error occurred while executing this line: 
[ERROR] [org.gradle.BuildExceptionReporter] Target "${build.target}" does not exist in the project "LibA". 


ライン466( "subant" を含むもの)によって引き起こされる:だから

<!-- compile the libraries if any --> 
<if> 
    <condition> 
     <isreference refid="project.libraries" /> 
    </condition> 
    <then> 
     <echo>Building Libraries</echo> 
     <subant 
       buildpathref="project.libraries" 
       antfile="build.xml" 
       target="${build.target}" 
       failonerror="true"/> 
     <echo></echo> 
     <echo>############################################</echo> 
     <echo>**** Back to project ${ant.project.name} ****</echo> 
     <echo>############################################</echo> 
    </then> 
</if> 


は、質問です:誰が取り除く方法を知っていませんまたはGradleでAndroidのbuild.xmlを正しく使用する方法は?

android sdk> = r14のために現時点でGradle-android-pluginが壊れているため、私はそれに応じて辞任しました。私はsdkツールr15を使用します。

UPDATE:。

どちらも

<target name="-set-release-mode" depends="-set-mode-check"> 

<target name="-set-debug-mode"> 

は、Androidのbuild.xmlファイルで呼び出さされていないが、私はなぜ知らないようです

答えて

1

この環境の詳細についてはわかりませんが、エラーメッセージは、予想されるプロパティ-- が定義されていないことを意味します。

私は、プロジェクトのプロパティは、あなたがこれを持っているファイルのことに気づく:あなたはこのように変更した場合

# Project target. 
target=android-5 

それは動作しますか?

# Project target. 
build.target=android-5 
+1

感謝を:ここで見つけることが

より。残念ながら、これはそうではありません。 project.propertiesのターゲットはあなたがターゲットとしているapiのバージョンですが、build.targetはメインプロジェクトのために実行していたantターゲットです。 "リリース"。だから私は "build.target = release"として設定していましたが、それがうまく理解できれば自動的に実行されるべきです。 – Orzech

0

私は同じ問題を抱えていたと含め解く:

build.target = Orzechにより示唆されるように、project.propertiesの終わりに

を解放します。

0

私はこれが古い投稿であることを知っていますが、質問はまだ私の誰かのために発生します。 build.targetは、Antビルダー用に定義されたターゲットです。

メニュー - >実行 - >外部ツール - >あなたは、実際のターゲットを選択

あり

設定 - >アリによって構築することが目標外部ツール: Eclipseを使用している場合は、次のようにターゲットを定義することができます。

定義されていない場合、Eclipseはヘルプターゲットを強制します。返信用http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.platform.doc.user%2Fconcepts%2Fconcepts-exttools.htm