问题

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

代码示例

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

flavorDimensions 'brand', 'type'

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

dependencies {
    wearApp project(':wear')
}

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

publishNonDefault true

flavorDimensions 'brand', 'type'

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

dependencies {

}

我们做了什么

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

I/WearablePkgInstaller: Setting DataItem to install wearable apps for your.package.id.here

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

nikonCompactWearApp compile(path:':wear', configuration:'nikonCompactRelease')

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

nikonWearApp compile(path:':wear', configuration:'nikonCompactRelease')

显而易见的

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

  • 对于手机和磨损应用都有相同的applicationId

  • 也可以通过手机应用程序获得穿戴应用的所有权限

  • 构建一个版本,因为调试从不包括磨损应用程序

  • publishNonDefault true在磨损模块中设置