使用 multi-flavor 编译 GMS 和 HMS 包。但是编译GMS版本的时候报错
Using multi-flavor to compile GMS and HMS packages. But an error is reported when the GMS version is compiled
我有一个应用配置了两种编译风格,一种使用 HMS,另一种不使用。未使用HMS的flavor在编译过程中,包名与JSON文件中包名不一致。结果,出现错误。
Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':app:processAppgalleryconnectLatestDebugAGCPlugin'.
> ERROR: Failed to verify AGConnect-Config '/client/package_name', expected: 'com.dise.appge.hms', but was: 'com.dise.appge.gms'
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
==============================================================================
那么不同的flavor使用不同的包名怎么解决这个问题呢?
您可以在应用程序的build.gradle中配置它。比如HMS和GMS两种口味,可以尝试添加如下代码:
if (getGradle().getStartParameter().getTaskNames().toString().contains("HMS")) {
apply plugin: 'com.huawei.agconnect'
}
即GMS编译时不添加AGC插件,避免JSON文件中包名不一致的问题
各个插件都可以在productFlavors
块中应用,不需要比较什么:
flavorDimensions "vendor"
productFlavors {
google {
dimension "vendor"
apply plugin: "com.google.gms.google-services"
apply plugin: "com.google.firebase.crashlytics"
applicationIdSuffix ".gms"
}
huawei {
dimension "vendor"
apply plugin: "com.huawei.agconnect"
applicationIdSuffix ".hms"
}
}
我有一个应用配置了两种编译风格,一种使用 HMS,另一种不使用。未使用HMS的flavor在编译过程中,包名与JSON文件中包名不一致。结果,出现错误。
Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':app:processAppgalleryconnectLatestDebugAGCPlugin'.
> ERROR: Failed to verify AGConnect-Config '/client/package_name', expected: 'com.dise.appge.hms', but was: 'com.dise.appge.gms'
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
==============================================================================
那么不同的flavor使用不同的包名怎么解决这个问题呢?
您可以在应用程序的build.gradle中配置它。比如HMS和GMS两种口味,可以尝试添加如下代码:
if (getGradle().getStartParameter().getTaskNames().toString().contains("HMS")) {
apply plugin: 'com.huawei.agconnect'
}
即GMS编译时不添加AGC插件,避免JSON文件中包名不一致的问题
各个插件都可以在productFlavors
块中应用,不需要比较什么:
flavorDimensions "vendor"
productFlavors {
google {
dimension "vendor"
apply plugin: "com.google.gms.google-services"
apply plugin: "com.google.firebase.crashlytics"
applicationIdSuffix ".gms"
}
huawei {
dimension "vendor"
apply plugin: "com.huawei.agconnect"
applicationIdSuffix ".hms"
}
}