是否有可能拥有支持1.5,1.6的Android build.xml,并且还支持不同的屏幕密度?

时间:2010-05-11 16:57:15

标签: android build

我知道如果我在AndroidManifest.xml中有以下代码段,我可以针对不同的屏幕密度使用Eclipse构建1.5和1.6 SDK

<supports-screens android:anyDensity="false"/>
<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4" />

如果我在res文件夹中以下列方式设置我的资源:

/res/drawable-hdpi-v4
/res/drawable-ldpi-v4

我的default.properties有以下一行:

# Indicates whether an apk should be generated for each density.
split.density=false
# Project target.
target=android-4

此设置允许我在Eclipse IDE中创建1.5和1.6版本,但在尝试执行命令行构建时失败并出现以下错误。

Buildfile: build.xml
    [setup] Project Target: Android 1.6
    [setup] API level: 4
    [setup] WARNING: Attribute minSdkVersion in AndroidManifest.xml (3) is lower than the project target API level (4)
Target "resource-src" does not exist in the project "<project-name>". It is used from target "compile".

无论是使用1.5 SDK生成的build.xml还是1.6 SDK(使用-resource-src,-aidl目标),都会出现此错误。

我认为在命令行上build.xml默认为1.5 SDK,我不知道如何让它与1.6+ SDK一起使用,并且不胜感激任何想法和评论。

我的目标是有一个脚本,可以为所有Android SDK编译,同时支持不同的屏幕密度。

由于

1 个答案:

答案 0 :(得分:0)

好的,我应该在一段时间后回答这个问题,因为我已经解决了这个问题。这里的问题是谷歌正在改变用于Android 2.2中的命令行编译的<android-home>/tools/ant/main_rules.xml文件。

答案很简单,我刚刚将Android SDK更新到最新版本,在我的build.xml文件中,我覆盖了我需要修改的<android-home>/tools/ant/main_rules.xml中定义的目标。这是谷歌推荐的方式,现在我的所有应用都是从Android 1.5开始构建的。