如何在Android项目中更改目标构建版本?

85

我目前在Eclipse中有一个Android项目。

我创建它时使用的目标构建版本是1.5(sdk 3)。

现在我想要更改它,使其具有最小SDK版本为3和目标SDK版本为8。

为了做到这一点,我看到我必须使用最新的SDK(2.2)进行构建。

在Eclipse中,我右键单击我的项目,转到属性,点击Android,将项目构建目标更改为Android 2.2,然后单击应用,再单击确定。

但是,这似乎没有任何影响,当我再试一次时,目标构建版本仍然设置为Android 1.5。

我是否漏了什么步骤或类似的东西?

13个回答

95

右键单击项目并点击“属性”。然后从左侧的树中选择“Android”。您可以在右侧选择目标版本。

(请注意,根据下面的热门评论,确保您的属性、类路径和项目文件可写,否则它将无法工作)


20
原来我的属性、类路径和项目文件都被设置为不可写,这就是为什么它没有工作的原因,现在已经可以了,谢谢。 - Donal Rafferty
3
我也遇到了这个问题。源代码控制导致文件不可写,阻止了切换操作。你不会收到任何警告或指示表明出现了问题...... 它只是没有切换成功。如果其他人也遇到了这个问题,请确保在您的源代码控制库中执行"编辑时签出"或任何正确的操作。 - Michael Stoner
有没有设置默认选项的方法?对于多个APK来说,每次都要设置这个选项有点烦人... - MBillau
@DonalRafferty 如何检查它们是否可写?以及如何使它们可写? - Muhammad Babar
@Muhammad Babar 我之前使用的是Visual Source Safe,它会自动将文件设置为只读。我只需在文件上取消勾选只读框即可。当时我使用的是Windows机器。 - Donal Rafferty
在Android Studio中:右键单击模块,然后单击“打开模块设置”。 - eldes

25
  1. 你可以随时更改项目的构建目标:

    在 Package Explorer 中右键单击项目,选择属性,选择 Android,然后勾选所需的项目目标。

  2. 编辑 AndroidManifest.xml 文件中的以下元素(该文件位于项目根目录中)。

    在本例中,这将是:

  3. <uses-sdk android:minSdkVersion="3" />
    <uses-sdk android:targetSdkVersion="8" />
    

    保存它。

  4. 重建你的项目。

    点击菜单栏中的项目,选择“清除...”

  5. 现在,再次运行项目。

    右键单击项目名称,移动到“运行为”,并选择“Android应用程序”

顺便说一句,查看使用ADT从Eclipse管理项目会有帮助。特别是名为“创建Android项目”的部分。


5
提示:完成所有这些步骤后,重新启动Eclipse。这可能会产生神奇的效果。 - cimnine
同意!直到重新启动Eclipse之后,我才能让它正常工作。 - Pedro
在Android Studio中,我必须将这些行合并在一起。不确定这是否特定于Android Studio,还是自发布以来清单格式已经要求更改。例如:<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="21" />。 - Eric Farraro
@Alan Will,我可能有点迟钝,但你在地球上到底在哪里点击第一个点...包资源管理器...我看不到任何属性!:-( - Dariusz

11

如果你在使用ant命令行,另一种方法是使用android.bat脚本(Windows)或android脚本(Mac)。它们位于$SDK_DIR/tools目录下。

如果你说,

android.bat update project --path .  --target "android-8"

它将重新生成您的 build.xml、AndroidManifest.xml 等文件。


7

解决此问题有三种方法。

  1. 右键单击项目,选择“属性”。然后从左侧选择“Android”。您可以从右侧选择目标版本。

  2. 右键单击项目,选择“运行为”,然后会打开一个下拉列表。
    从下拉列表中选择“运行配置”。然后会打开一个表单, 从“表单”中选择“目标”选项卡,并选择Android版本Api, 你想要在哪个版本上执行应用程序,这是检查应用程序在不同目标版本上的最快方式。

  3. 编辑AndroidManifest.xml文件中的以下元素

xml:

<uses-sdk android:minSdkVersion="3" />
<uses-sdk android:targetSdkVersion="8" />

3
我同意Ryan Conrad在Eclipse中的操作方式,你确定已经修改了你的manifest.xml文件吗?
 <uses-sdk android:minSdkVersion="3" />
 <uses-sdk android:targetSdkVersion="8" />

3

default.properties 文件默认是只读的,将其更改为可写状态对我有用。


3
有时候在项目中出现错误时会出现问题。
例如,如果您的项目配置了3.2版本的目标,但是3.2库不可用,那么您将无法将版本更改为4.0!
我通常使用的解决方案是创建一个具有正确目标的新项目,并将src、res和manifest复制到新项目中。
更新:
这似乎有效:
1.像往常一样通过“构建属性”更改所选内容 2.手动编辑project.properties和default.properties确保它们都反映出所需的目标。 3.关闭项目并重新打开它
在更改构建目标后,我总是运行Android工具|修复项目属性。

2

您的文件中不应有多个“uses-sdk”标签。参考 - 文档

Use this syntax:
    <uses-sdk android:minSdkVersion="integer"
          android:targetSdkVersion="integer"
          android:maxSdkVersion="integer" />

1

1
我也遇到了这个问题。对我有用的方法是,在选中新的所需版本之前,先取消选中先前选择的SDK版本。然后点击确定。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接