4

マップ アクティビティを作成しましたが、マップ ビューにマップが表示されず、空白のブロックが表示されるだけです。解決策はありますか?

activity_main.xml-

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

活動コード-

package com.example.googlemap;


import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}
}

マニフェスト ファイル -

  <uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="16" />

<permission
    android:name="com.example.googlemap.permission.MAPS_RECEIVE"
    android:protectionLevel="signature" />

<meta-data
    android:name="com.google.android.maps.v2.AIzaSyDRv4Ul_9iPW-roHIsc8EuxKwkRN8jWivs"
    android:value="AIzaSyDRv4Ul_9iPW-roHIsc8EuxKwkRN8jWivs" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<!--
 The following two permissions are not required to use
 Google Maps Android API v2, but are recommended.
-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.googlemap.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <uses-library android:name="com.google.android.maps" />
</application>

これを使用した後 、次の例外が発生します-

  08-22 23:19:52.204: E/AndroidRuntime(584): FATAL EXCEPTION: main
  08-22 23:19:52.204: E/AndroidRuntime(584): java.lang.RuntimeException: Unable to       start activity ComponentInfo{com.example.googlemap/com.example.googlemap.MainActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class fragment
4

3 に答える 3

5

古い MapView は減価償却されました。アプリを公開するための新しい Map キーを作成することはできません。新しい Google Maps for Android v2 API を使用する必要があります。ドキュメントと例へのリンクを次に示します。 https://developers.google.com/maps/documentation/android/start

于 2013-08-22T17:28:37.707 に答える
0

これは、Android Studio 1.2.1.1 にバンドルされている Google マップ アクティビティを使用して行うことができます。Google マップ アクティビティを作成し、以下の手順に従いました。

  1. google_maps_api.xml の指示に従って API キーを作成しました

    To get one, follow this link, follow the directions and press "Create" at the end:
    

    https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r=XY:XY:XY:XY:XY:XY:XY:XY:XY:XY:XY:XY:XY:XY: XY:XY:XY:XY:XY:XY%3Bnパッケージ名

    You can also add your credentials to an existing key, using this line:
    XY:XY:XY:XY:XY:XY:XY:XY:XY:XY:XY:XY:XY:XY:XY:XY:XY:XY:XY:XY;newmapscreen.avapps.nbapl.com.newmapscreen
    
    Once you have your key (it starts with "AIza"), replace the "google_maps_key"
    string in this file.
    -->
    <string name="google_maps_key" translatable="false" templateMergeStrategy="preserve">
        AIzaXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    </string>
    

その後、すべての依存関係が Android マニフェスト build.gradle にあることを確認しました。詳細については、この回答を参照してください。

MapActivity.java では、追加のマーカーを追加し、Android Google Maps API V2 機能を使用してマップを拡張できます。

(XY:XY を google_maps_api.xml の内容に置き換えます)

于 2015-06-16T23:57:26.627 に答える