应用程序在使用Google Play服务时遇到问题。请再试一次

问题描述 投票:7回答:5

我已多次完成此代码。但从今天早上起,我发现这个问题就出现了。这是显示地图布局的基本代码。并向我显示此错误。我也正确地输入了API密钥.Screen Shot of EmulatorI搜索了其他StackOverflow帖子,但对我来说没什么用。

package com.example.maptest

import android.support.v7.app.AppCompatActivity
import android.os.Bundle

import com.google.android.gms.maps.CameraUpdateFactory
import com.google.android.gms.maps.GoogleMap
import com.google.android.gms.maps.OnMapReadyCallback
import com.google.android.gms.maps.SupportMapFragment
import com.google.android.gms.maps.model.LatLng
import com.google.android.gms.maps.model.MarkerOptions

class MapsActivity : AppCompatActivity(), OnMapReadyCallback {

    private lateinit var mMap: GoogleMap

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_maps)
        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
        val mapFragment = supportFragmentManager
            .findFragmentById(R.id.map) as SupportMapFragment
        mapFragment.getMapAsync(this)
    }

    /**
     * Manipulates the map once available.
     * This callback is triggered when the map is ready to be used.
     * This is where we can add markers or lines, add listeners or move the camera. In this case,
     * we just add a marker near Sydney, Australia.
     * If Google Play services is not installed on the device, the user will be prompted to install
     * it inside the SupportMapFragment. This method will only be triggered once the user has
     * installed Google Play services and returned to the app.
     */
    override fun onMapReady(googleMap: GoogleMap) {
        mMap = googleMap

        // Add a marker in Sydney and move the camera
        val sydney = LatLng(-34.0, 151.0)
        mMap.addMarker(MarkerOptions().position(sydney).title("Marker in Sydney"))
        mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney))
    }
}

Xml文件: -

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      xmlns:map="http://schemas.android.com/apk/res-auto"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:id="@+id/map"
      tools:context=".MapsActivity"
      android:name="com.google.android.gms.maps.SupportMapFragment"/>

应用级别gradle: -

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.example.maptest"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.google.android.gms:play-services-maps:16.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

项目级别: -

    // Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext.kotlin_version = '1.3.21'
    repositories {
        google()
        jcenter()

    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()

    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
android google-maps kotlin google-play-services
5个回答
21
投票

我解决了这个问题。

通过更改应用程序级别gradle依赖项

由此

implementation 'com.google.android.gms:play-services-maps:16.1.0'

对此

implementation 'com.google.android.gms:play-services-maps:16.0.0'

更新:

现在Google修复了您可以使用此最新gradle依赖项的问题。

implementation 'com.google.android.gms:play-services-maps:16.1.0'

8
投票

我也有这个问题,当我将依赖项更改为implementation 'com.google.android.gms:play-services-maps:16.0.0'时,地图未加载。

所以我在模拟器上更新了Google Play服务:

enter image description here

之后,我必须登录才能访问Play商店,然后我可以更新Google Play服务。

最后,我让依赖为implementation 'com.google.android.gms:play-services-maps:16.1.0'


0
投票

有点晚了,但我也遇到过这个问题。如此处所建议的那样更改依赖关系并不适用于我。工作实际上是在模拟器上进入chrome并搜索Google Play服务。单击建议的应用程序商店链接,它将带您进入浏览器中的Play商店。点击底部的按钮在模拟器上的应用程序商店中打开它(因为在游戏商店中搜索它实际上没有提起它,你必须通过浏览器),并希望它为您提供选项更新Google Play服务。之后它对我来说非常完美!


-1
投票

检查您正在构建的变体(发布/调试)是否已正确签名...

右键单击模块=>打开模块设置 在“构建类型”下,选中“签名配置”

api 'com.google.android.gms:play-services-maps:16.1.0'

以上在现实世界中对我来说很好 - 但我不使用模拟器。

AS 3.3.2 /插件3.3.2 / Gradle 4.10.2 / compileSdkVersion 28 / buildToolsVersion“28.0.3”

© www.soinside.com 2019 - 2024. All rights reserved.