Android gradle exclude无法正常工作

时间:2019-11-19 10:43:11

标签: android react-native gradle

我正在开发一个React Native项目,并且正在使用第三方库react-native-geolocation-service。在该库的build.gradle文件中,play-services-location的版本定义如下:(有关整个build.gradle文件,请参考this link

dependencies {
    def googlePlayServicesVersion = rootProject.hasProperty('googlePlayServicesVersion') ? rootProject.googlePlayServicesVersion : DEFAULT_GOOGLE_PLAY_SERVICES_VERSION

    implementation "com.google.android.gms:play-services-location:$googlePlayServicesVersion"
}

在我的项目的build.gradle文件中,我具有以下内容:

buildscript {
    ext {
        ...
        googlePlayServicesVersion = "16.1.0"
    }
}

在我的项目的app / build.gradle文件中:

dependencies {
    implementation(project(':react-native-geolocation-service')) {
        exclude group: 'com.google.android.gms', module: 'play-services-location'
    }
    implementation ('com.google.android.gms:play-services-location:16.0.0') {
      force = true
    }
}

即使我已在gradle文件中指定将版本16.0.0用作play-services-location,但我先运行gradlew clean然后运行gradlew build后仍然收到以下错误:

  

任务':react-native-geolocation-service:generateDebugRFile'的执行失败。

     

无法解析配置':react-native-geolocation-service:debugRuntimeClasspath'的所有文件。

     

找不到com.google.android.gms:play-services-location:16.1.0。

为什么gradle仍在寻找版本16.1.0,而不是版本16.0.0?

1 个答案:

答案 0 :(得分:0)

如果您要查看Here的发行说明。

2019年6月17日

版本是

com.google.android.gms:play-services-location:17.0.0

2018年10月2日

发布是

com.google.android.gms:play-services-location:16.0.0

因此,位置

没有发布版本16.1.0