具有多种风味尺寸的Android Wear项目

hcp*_*cpl 7 android build.gradle android-gradle-plugin android-productflavors wear-os

问题

我们遇到了一个项目的问题,该项目具有多个(2)产品风味尺寸和磨损模块.在构建一个版本时,我们没有编译错误,手机应用程序工作,但磨损应用程序永远不会同步观看.

代码示例

手机应用模块build.gradle包含(示例和仅提取)

flavorDimensions 'brand', 'type'

productFlavors {
    nikon {
        dimension 'brand'
    }
    canon {
        dimension 'brand'
    }
    compact {
        dimension 'type'
    }
    slr {
        dimension 'type'
    }
}

dependencies {
    wearApp project(':wear')
}
Run Code Online (Sandbox Code Playgroud)

Wear app模块build.gradle包含相同的尺寸配置

publishNonDefault true

flavorDimensions 'brand', 'type'

productFlavors {
    nikon {
        dimension 'brand'
    }
    canon {
        dimension 'brand'
    }
    compact {
        dimension 'type'
    }
    slr {
        dimension 'type'
    }
}

dependencies {

}
Run Code Online (Sandbox Code Playgroud)

我们做了什么

我们检查了磨损应用程序是否在apk中通过安装在手机上并触发官方android穿戴应用程序的磨损应用程序同步选项.在日志记录中,您packageId可以获得同步观察的s 的概述:

I/WearablePkgInstaller: Setting DataItem to install wearable apps for your.package.id.here
Run Code Online (Sandbox Code Playgroud)

我们还尝试在依赖项中指定重定向到特定配置的flavor.

nikonCompactWearApp compile(path:':wear', configuration:'nikonCompactRelease')
Run Code Online (Sandbox Code Playgroud)

然而,添加两种风味尺寸会立即打破构建.有一个风味维度确实有效,并且磨损应用程序已正确发布,但我们真的想要多个维度.

nikonWearApp compile(path:':wear', configuration:'nikonCompactRelease')
Run Code Online (Sandbox Code Playgroud)

显而易见的

为了清楚起见,在我们切换到多个维度之前,磨损应用程序工作.我们还检查了明显的穿着apk包装选项,如:

  • 对于手机和磨损应用都有相同的applicationId
  • 从电话应用程序也获得穿戴应用程序的所有许可
  • 建立一个版本,因为调试从未包括磨损应用程序
  • publishNonDefault是在wear模块中设置的