このコードを何度か実行しました。しかし、今日の朝から、この問題が発生するのがわかります。これは、マップレイアウトを表示するための基本的なコードです。そして、私にこのエラーを示しています。また、APIキーを正しく入力しました。 エミュレータのスクリーンショット 他の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"/>
アプリレベルのグラドル:-
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
}
少し遅れましたが、私もこの問題を抱えています。ここで提案されているように依存関係を変更してもうまくいきません。実際に機能したのは、エミュレーターでchromeに移動し、Google Play Servicesを検索することでした。アプリストアへの推奨リンクをクリックすると、ブラウザーでPlayストアに移動します。 。下部のボタンをクリックして、エミュレータのアプリストアで開きます(Playストアで検索しても実際には表示されないため、ブラウザを使用する必要があります)。うまくいけば、 Google Play開発者サービスを更新するオプションです。それ以降は、私にとっては完璧に機能しました。