Android 编译版本是否应该与 Eclipse 中的目标版本相同?

Should the Android compile version be same as the target version in Eclipse?

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

我收到错误 "Android manifest file is missing",尽管它确实存在。当我清理然后构建项目时,它已编译但应用程序崩溃了。我在这里做错了什么?

这些是我的设置。

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

targetSdkVersion
targetSdkVersion 与您的应用程序的编译方式或您可以使用的 APIs 无关。 targetSdkVersion 应该表示您已经在您指定的版本上(大概达到并包括)测试了您的应用程序。这更像是您给予 Android OS 的认证或签字,以提示它应如何根据 OS 功能处理您的应用程序。

至于清单错误,您可以尝试(如果您使用的是 android studio)单击文件 > 使缓存无效/重新启动或强制执行 gradle 同步

使用更高版本编译时应该不会引入任何问题,甚至鼓励这样做。您可以在 Medium article.

中找到有关该主题的更多信息

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

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

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

清单问题可能是由于反复创建同名项目造成的。但是 clean -> build the project 帮助我摆脱了它。

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

感谢您的回答。

我认为明显的问题是因为一遍又一遍地创建一个同名的项目。但是 clean -> build the project 帮助我摆脱了它。

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