2016-04-12 26 views
0

私はプログラマーではありませんが、仕事を通して非常に基本的なアンドロイド開発アプリをやっています。GoogleマップはAndroidアプリの空白ページを表示します

私のアプリでGoogleマップ画面を起動して実行するために、すべての設定キーを設定することができました。ただし、地図画面を開くときにクリックすると、空白の地図が表示されます(画面の下部にGoogleロゴが表示されます)。

似たような問題を抱えている人からの質問を見たので、私のアンドロイドマニフェストに特定の権限を追加する必要があると思います。だから、本当に望んで誰かが(...赤ちゃんのステップの一種)

おかげ

のAndroidマニフェストXML

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.android.learn5things"> 

    <!-- 
     The ACCESS_COARSE/FINE_LOCATION permissions are not required to use 
     Google Maps Android API v2, but you must specify either coarse or fine 
     location permissions for the 'MyLocation' functionality. 
    --> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

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

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:name=".LocationActivity" /> 
     <activity android:name=".CultureActivity" /> 
     <activity android:name=".FoodActivity" /> 
     <activity android:name=".FootballActivity" /> 
     <activity android:name=".CarnavalActivity" /> 

     <!-- 
      The API key for Google Maps-based APIs is defined as a string resource. 
      (See the file "res/values/google_maps_api.xml"). 
      Note that the API key is linked to the encryption key used to sign the APK. 
      You need a different API key for each encryption key, including the release key that is used to 
      sign the APK for publishing. 
      You can define the keys for the debug and release targets in src/debug/ and src/release/. 
     --> 
     <meta-data 
      android:name="com.google.android.geo.API_KEY" 
      android:value="@string/google_maps_key" /> 

     <activity 
      android:name=".MapsActivity" 
      android:label="@string/title_activity_maps"></activity> 
    </application> 

</manifest> 

私のコードを調べて、正しい方向に私を指すことができるだろうアクティビティマップ(XML)

<fragment xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:map="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/map" 
    android:name="com.google.android.gms.maps.SupportMapFragment" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.example.android.learn5things.MapsActivity" /> 

M APS活動(javaファイル)

package com.example.android.learn5things; 

import android.support.v4.app.FragmentActivity; 
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; 

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback { 

    private GoogleMap mMap; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_maps); 
     // Obtain the SupportMapFragment and get notified when the map is ready to be used. 
     SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
       .findFragmentById(R.id.map); 
     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 
    public void onMapReady(GoogleMap googleMap) { 
     mMap = googleMap; 

     // Add a marker in Brazil and move the camera 
     LatLng brazil = new LatLng(-8.892710, -56.098682); 
     mMap.addMarker(new MarkerOptions().position(brazil).title("Marker in Brazil")); 
     mMap.moveCamera(CameraUpdateFactory.newLatLng(brazil)); 

    } 
} 
+0

あなたが 'google_maps_key' の値で取得した鍵を持っていますか? res/values/google_maps_api.xmlを確認してください – Blackkara

答えて

0

あなたは、Googleがアプリケーションタグの下に、あなたのManifest.xmlファイルにサービスのバージョンをプレイ明確にする必要があります。

<meta-data 
    android:name="com.google.android.gms.version" 
    android:value="@integer/google_play_services_version" /> 

はまた、私は、Google Maps APIキーがあるべきだと思います

<meta-data 
     android:name="com.google.android.maps.v2.API_KEY" 
     android:value="@string/google_maps_key" /> 

また、実際のGoogleマップキーを文字列ファイルに入れてください。 助けてくれることを願っています。

Source

+0

ありがとうございました。エラーログにAPIキーの問題があることがわかりました。だから私はGoogleの開発者に行き、新しいものを生成しました。これは問題を解決したようです。私はあなたの提案をまだ実装しようとしていませんが、期待通りに機能しているようですが、後で更新して、それ以外の変更があるかどうか確認してください。あなたの助けをもう一度ありがとう! –

+0

それは私にも一度だけ起こったよ、問題ない:) –

関連する問題