Travis CI Android 构建未能检测到 Product Flavor 目录中的文件

Travis CI Android build failed to detect file in Product Flavour directory

我的 Android 项目有两个产品风味 FlavourOne & FlavourTwo 和 BuildType Debug & 发布.

我的项目src目录有

  1. 主要
  2. FlavourOneDebug
  3. FlavourOneRelease
  4. FlavourTwoDebug
  5. FlavourTwoRelease

xxx.xxx.test.constant.FlavourConstant 放在 FlavourOneDebug, FlavourOneRelease, FlavourTwoDebug, FlavourTwoRelease 而不是在主目录

xxx.xxx.test.MainActivity 放在主目录下 imports FlavourConstant

这是我的 travis.yml

language: android
sudo: required
jdk: oraclejdk8

android:
  components:

  # The BuildTools version used by your project
  - build-tools-26.0.2

  # The SDK version used to compile your project
  - android-26

  # Additional components
  - extra-google-google_play_services
  - extra-google-m2repository
  - extra-android-m2repository

  before_cache:
  - rm -f  $HOME/.gradle/caches/modules-2/modules-2.lock
  - rm -fr $HOME/.gradle/caches/*/plugin-resolution/

  cache:
    directories:
    - $HOME/.gradle/caches/
    - $HOME/.gradle/wrapper/
    - $HOME/.android/build-cache

    before_install:
    - mkdir "$ANDROID_HOME/licenses" || true
    - echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_HOME/licenses/android-sdk-license"
    - echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "$ANDROID_HOME/licenses/android-sdk-preview-license"

script:
  - ./gradlew build --stacktrace

Travis CI 无法从产品风味目录中引用 FlavourConstant。

参考 Travis 失败的工作 https://travis-ci.org/KarthikUCH/MokaTest/jobs/527169383

终于解决了问题,其实是flavor源集目录命名问题

Travis 中的 Gradle 任务要求 flavor 目录区分大小写。

将目录命名形式 flavoruonedebug 更改为 flavoruoneDebug 解决了问题