Travis 构建失败,因为 lint 说 SDK 平台工具版本太旧

Travis build fails because of lint saying that SDK platform-tools version is too old

您好,我有一个 android 应用程序是在 Travis CI 上构建的。不幸的是构建失败了,因为 lint 说平台 sdk 工具太旧了:

The SDK platform-tools version (23.0.1) is too old to check APIs compiled with API 25; please update

我使用的构建工具(在 build.gradle 文件中)是 25.0.1,我用 API 25 编译。在我的本地机器上,我的应用程序从命令行编译得很好,没有任何 lint错误。

我的 .travis.yml 文件如下所示:

language: android
android:
  components:
  - tools
  - build-tools-25.0.1
  - extra-android-m2repository
  - android-25
jdk:
- oraclejdk8
licenses:
- android-sdk-license-.+
- android-sdk-license-c81a61d9

知道我的 travis 设置有什么问题吗?

您应该将 platform-tools 添加到您的 components: 区块。我把它列在我的 .travis.yml:

的第一位
android:
    components:
        - platform-tools
        - tools
        - build-tools-25.0.1
        - android-25
        - extra-android-m2repository
        - extra-android-support
        - extra-google-m2repository
        - extra-google-google_play_services

目前 Travis 有这样的问题尚未解决:https://github.com/travis-ci/travis-ci/issues/6699

从那里开始,我找到了一个适合我的解决方法 - 您需要使用您需要的版本复制下面的 androidbuild-tools 部分。据说这样特拉维斯得到了正确的版本:https://github.com/syncthing/syncthing-android/pull/789

...
android:
  components:
    - tools
    - android-24
    - build-tools-24.0.2
    - platform-tools
    - build-tools-24.0.2
    - android-24
...