什么样的编译器、sdk、targetsdk 和工具设置会让 android studio 满意?

What set of compiler, sdk, targetsdk and tools settings will make android studio happy?

我收到一封来自 google 的电子邮件,说我必须在 2018 年 11 月之前将我的 targetsdk 设置更新为至少 26。 因此,等了将近 2 年之后,我终于尝试从 eclipse 切换到 android studio,在那里我意识到我们只是将一组已知问题换成了另一组未知问题。我故意等着迁移,这样其他人都可能遇到最前沿的一切都被破坏的问题,事实上我 运行 遇到的每个问题都有堆栈溢出响应,除了这个:

compilesdk 版本必须与支持库相同。

compilesdk版本不能低于targetsdk版本

targetsdk版本和编译器版本应该是最新的,目前是28

但据我所知,没有超过 26.0.0-beta1 的应用程序兼容性,因此据我所知不可能满足所有要求。 你到底应该做什么?

26.0.0-beta1之后发布了appcompat库。最新的是 28.0.0-rc01.

使用这些:

  • compileSdkVersion 28
  • targetSdkVersion 28 和
  • 实施'com.android.support:appcompat-v7:28.0.0-rc01'

您实际上可以检查最新版本的 appcompat here

这些是最新的。还有什么可以随时问我的。

由于 Android Pie 已经在几天前发布了,我会等待稳定的 Android Studio 3.2 版本,因为它有几个重构选项,比如将支持库迁移到 androidX 等 - 那么您可以继续使用 compileSdk 和 targetSdk 28,并将支持库重构为 androidX(无论如何都是必需的)。您已经可以尝试使用 Android Studio 3.2 Beta 但不要忘记将 gradle 版本也提升到至少 3.2-beta05,否则您可能会遇到意外错误,尤其是在迁移旧支持库时。

编辑:如果您当前的项目甚至没有针对 API lvl 26,您可能仍然有很多工作要做(取决于您从 android sdk 使用的功能), 恕我直言,最好通过 "behavior changes" articles first (brought for each new android version) to know how it may affect your app. So if you want to test it as quick as possible, simply use the current Android Studio version (3.1.4), raise target- and compileSDK to 28 and also the support libs。然后,一旦 Android Studio 3.2(和 gradle 插件 3.2.0)发布,您就可以利用 AndroidX 的迁移功能。但就目前而言,您应该更担心由 SDK 更新而不是 AndroidX 引起的行为变化。我的第一个建议是等待 android studio 更新一步完成所有这些,而不是在应用程序兼容性将被弃用的下一个版本中感到恼火。