无法解析com.google.android.gms:play服务位置:16.+



伙计们,当我试图在真实设备上运行我的应用程序时,但在升级到1.22.2后发现了错误:

Required by:
project :app > project :location
> Failed to list versions for com.google.android.gms:play-services-location.
> Unable to load Maven meta-data from https://jcenter.bintray.com/com/google/android/gms/play-services-location/maven-metadata.xml.
> Could not get resource 'https://jcenter.bintray.com/com/google/android/gms/play-services-location/maven-metadata.xml'.
> Could not GET 'https://jcenter.bintray.com/com/google/android/gms/play-services-location/maven-metadata.xml'.
> Read timed out
  • 尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。使用--scan运行以获得完整的见解

myandroid\app\build.gradle:

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}

apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

android {
compileSdkVersion 28

lintOptions {
disable 'InvalidPackage'
}

defaultConfig {
applicationId "io.bujupah.hestia"
minSdkVersion 17
targetSdkVersion 28
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
multiDexEnabled true
}

signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}

flutter {
source '../..'
}

dependencies {
implementation 'com.google.android.gms:play-services-auth:16.0.1'
testImplementation'junit:junit:4.12'
testImplementation 'org.mockito:mockito-core:2.17.0'
implementation 'com.android.support:multidex:1.0.3'
}

我的android \build.gradle:

buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.2'
}
}
allprojects {
repositories {
google()
jcenter()
}
}
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}
task clean(type: Delete) {
delete rootProject.buildDir
}

当我运行flutter时——版本:

Flutter 1.22.4•通道稳定•https://github.com/flutter/flutter.git框架•修订1afb3a8b9(4个月前(•2020-11-13 09:59:28-0800发动机•修订2c956a31c0工具•飞镖2.10.4

我的位置插件:

# flutter_map_marker_cluster: any
flutter_polyline_points: ^0.2.4
geolocator: ^6.1.1
geocoding: ^1.0.5
location: ^3.0.2

解决方案是更新

dependencies {
com.android.tools.build:gradle:3.6.2
}

dependencies {
classpath 'com.android.tools.build:gradle:4.1.0'
}

然后将distributionUrl更新为

distributionUrl=https://services.gradle.org/distributions/gradle-6.5-all.zip

以下更改对我有效


//Project level build.gradle
buildscript {
ext.kotlin_version = '1.3.50'
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.+'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.10'
}
}

//App level build.gradle
configurations.all {
resolutionStrategy {
force 'com.google.android.gms:play-services-location:16.0.0'
}
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.google.firebase:firebase-analytics:17.2.2'
implementation 'com.google.android.gms:play-services-location:16.0.0'//add this line 
}

mavenCentral()替换Jcenter()对我有效。

repositories {
google()
mavenCentral()  // Add this
jcenter()    // remove this   
}

对于REACT-NATIVE用户:在您的android文件夹中,在...androidbuild.gradle文件中进行此更改。

对于那些还没有用AzizDev的解决方案解决问题的人,试试这个解决方案:

也许你的一些依赖关系已经过时了。。因此,在终端中运行此命令以升级它们,然后运行项目

flutter pub upgrade --major-versions

网站已停止维护,请寻找jcenter((替代方案或等待他们解决问题。

转到你的.pub cache/hosts/pub.dartlang.org/转到你自己的插件,然后转到android文件夹/更改你的com.google.android.gms:play services location:16.+到特定版本。然后它将完美地工作

注意:您的.pub/cache文件夹路径在窗口中应该不同,如果.pub缓存文件夹被隐藏,您还需要取消隐藏

只需检查flutter项目中的渐变版本,如下所示:

/android/build.gradle:

dependencies {
classpath 'com.android.tools.build:gradle:4.1.3'
...
}

/android/gradle/wrapper/gradle-wrapper.properties:

...
distributionUrl=https://services.gradle.org/distributions/gradle-6.5-all.zip

如果所有答案都不适用,下面是我解决问题的方法:(React Native(

  • 完全删除node_modules
  • 重新安装纱线或npm
  • 在你的Project/android/(./gradlew-Clean(中清理你的android构建
  • 在Android工作室中,点击同步您的项目文件(带蓝色箭头的大象(
  • 重新生成

就是

最新更新