0

これは奇妙なものです。-pre-compileにターゲットがありますcustom_rules.xml。ここでは、一部のJARがlibsフォルダーにコピーされます。

クリーンビルドを実行すると、それらのライブラリが.apkに含まれないため、実行時に失敗します。の出力を見るとant -v ...、Dxはそれらのライブラリを処理していません。したがって、プロジェクトがこれらのライブラリに対してコンパイルされている間、それらはDxフェーズには含まれません。

その後、非クリーンを実行した場合ant debug、によってコピーされたJAR-pre-compileはビルドの開始時にすでに存在していたため、すべてが正常です。

私が間違っていることについて何か考えはありますか?

4

1 に答える 1

0

.../tools/ant/build.xml私は最終的に、SDKからにechoステートメントを入念に追加することでこれを理解しました。

.../libsDxのライブラリを含むパスは、-setupタスクで定義されます。これはまたはの前のチェーンにあるため、これらのポイントのいずれ-pre-compileかで-pre-buildJARを.../libsフォルダーにコピーする場合は、手遅れになります。

-setupそのため、タスクをオーバーライドすることになりました。

  <target name="-setup" depends="-prepare-libs, android_rules.-setup"/>

  <target name="-prepare-libs">
    ... build / copy libs in to .../libs here
  </target>

オーバーライドされたタスクを呼び出すための構文に注意してください... SDKからインポートされたもので定義されているように、タスク名が追加-setupされたタグで定義されたプロジェクト名。projectbuild.xml

于 2012-06-19T15:50:58.023 に答える