Я только что получил свою сборку, используя муравей после долгих усилий.
В принципе, теперь все довольно просто:
<project name="MyDroid" default="help" >
<property file="local.properties" />
<property file="build.properties" />
<property file="default.properties" />
<path id="android.antlibs">
<pathelement path="${sdk.dir}/tools/lib/anttasks.jar" />
<pathelement path="${sdk.dir}/tools/lib/sdklib.jar" />
<pathelement path="${sdk.dir}/tools/lib/androidprefs.jar" />
<pathelement path="${sdk.dir}/tools/lib/apkbuilder.jar" />
<pathelement path="${sdk.dir}/tools/lib/jarutils.jar" />
</path>
<taskdef name="setup"
classname="com.android.ant.SetupTask"
classpathref="android.antlibs"
/>
<import file="C:\Applications\android-sdk-windows\tools\ant\main_rules.xml" />
<setup import="false" />
<!-- comment this line for build using nant, its silly , i know -->
<!--<import file="${sdk.dir}/platforms/android-7/templates/android_rules.xml" />-->
</project>
Как вы видите, я ссылаюсь на файл main_rules.xml муравья, а не на платформу, которую я использую.
В моем манифесте:
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="10" />
У меня есть несколько вопросов по этому поводу:
- Безопасно ли использовать муравьи main_rules вместо платформ?
- Я заметил, что не на всех платформах есть main_rules.xml? Начиная с android-9 файл больше не находится в каталоге шаблонов?
- Когда я пытался ссылаться на main_rules из каталога android-7, я получал много ошибок, используя свой nant buildscript. В основном атрибуты, которые не могут быть найдены в библиотеках, на которые я ссылаюсь. Должен ли я использовать main_rules.xml из версии minSdk или targetSdk?
- Я не смог использовать $ {target}, потому что он настроен на target = Google Inc.: API Google: 7, и это просто не сработало, потому что на диске нет реального пути. Любое решение для этого?
Большое спасибо.