【问题标题】:Should the Android compile version be same as the target version in Eclipse?Android 编译版本是否应该与 Eclipse 中的目标版本相同?
【发布时间】:2018-09-11 03:34:42
【问题描述】:

我需要将 Android 项目的目标 SDK 版本设置为 API 14。但我没有可用于编译项目的相同版本。我知道可以使用不同的版本编译该项目,但我需要知道它是否会导致任何问题。

我收到了错误“Android 清单文件丢失”,即使它存在。当我清理然后构建项目时,它被编译但应用程序崩溃了。我在这里做错了什么?

这些是我的设置。

【问题讨论】:

    标签: android compiler-errors android-manifest android-sdk-2.1 target-sdk


    【解决方案1】:

    使用更高版本编译时应该不会引入任何问题,甚至鼓励这样做。您可以在 Medium article 中找到有关该主题的更多信息。

    我还想提请您注意以下blog,其中包含有关近期 SDK 定位的一些重要信息。

    不幸的是,我不使用 Eclipse,所以我担心无法就此事提供任何经过验证的见解。然而,到目前为止我发现的建议包括:

    • 清理项目
    • 去掉 ö、ë 等字符。
    • 删除文件并重新创建它

    清单问题可能是由于一遍又一遍地创建具有相同名称的项目。然而 clean -> build the project 帮助我摆脱了它。

    是的。 Android 编译版本可以高于目标版本。 Android 编译版本和目标版本不必相同。

    【讨论】:

      【解决方案2】:

      感谢您的回答。

      我认为清单问题是由于一遍又一遍地创建同名项目造成的。然而 clean -> build the project 帮助我摆脱了它。

      是的。 Android 编译版本可以高于目标版本。这两个不必相同。

      【讨论】:

        【解决方案3】:

        compileSdkVersion
        compileSdkVersion 是应用程序编译所针对的 API 版本。这意味着您可以使用该 API 版本中包含的 Android API 功能(当然,也可以使用所有以前的版本)。如果您尝试使用 API 16 功能但将 compileSdkVersion 设置为 15,您将收到编译错误。如果您将 compileSdkVersion 设置为 16,只要您的应用的执行路径不尝试调用任何特定于 API 16 的 API,您仍然可以在 API 15 设备上运行该应用。

        targetSdkVersion
        targetSdkVersion 与您的应用程序的编译方式或您可以使用的 API 无关。 targetSdkVersion 应该表明您已经在您指定的版本上测试了您的应用程序(可能达到并包括)。这更像是您向 Android 操作系统提供的认证或签字,作为它应该如何处理您的应用程序在操作系统功能方面的提示。

        至于清单错误,您可以尝试(如果您使用的是 android studio)点击 File > Invalidate Caches / Restart or force a gradle sync

        【讨论】:

        • 我正在使用 Eclipse。我摆脱了错误,但应用程序崩溃了。这只是一个空白的应用程序。我认为这是由于 SDK 版本的差异造成的。
        • 理想情况下,您可以将目标和最小 SDK 设置为 14 或您要部署到的最低 API
        猜你喜欢
        • 2019-09-12
        • 1970-01-01
        • 2013-04-05
        • 1970-01-01
        • 2011-06-01
        • 2014-08-22
        • 1970-01-01
        相关资源
        最近更新 更多