1

私はAndroidが初めてです。私は何日もの間、非常に基本的なGoogleマップアプリケーションを作成しようと試みてきましたが、まだ完了できません...コードにエラーはなく、エミュレーターはターミナルから正常に動作し、マップキーも正常ですが、それでもマップを表示できません. アプリを実行すると、グリッドのみが表示され、マップは表示されません。これがコードです。どなたでも助けてください。私はEclipse Juno 4.2.1 APIレベル17を使用しており、GoogleマップAPI v2を使用してマップを表示したい私のコードはここにあります

  <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.example.googlemap"
  android:versionCode="1"
  android:versionName="2.0" >
  <uses-feature
  android:glEsVersion="0x00020000"
 android:required="true"/> 


  <uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />
  <permission
      android:name="com.example.googlemap.permission.MAPS_RECEIVE"
      android:protectionLevel="signature"/>
  <uses-permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE"/>

 <uses-permission android:name="android.permission.INTERNET"/>
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
   <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>


   <application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
   <meta-data
    android:name="com.google.android.maps.v2.API_KEY"
    android:value="[API_KEY]"/>

       <!-- <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>

    </manifest>

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"
  class="com.google.android.gms.maps.MapFragment"/>                

MainActivity.java

   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);
    }
protected boolean isRouteDisplayed() {

         return false;

        }

  }
4

5 に答える 5

1

マニフェスト ファイルは Maps V2 を使用しており、レイアウトとアクティビティは Maps V1 を使用しています。Maps V2 API キー生成手順を使用して Maps API キーを生成し、それを Maps V1 MapView に設定しています。そのため、間違った API キーを扱うため、表示されません。

V1 キー生成手順で API キーを生成するか、google-play-services_libプロジェクトを使用して MapView およびその他のクラスを変更します。

于 2013-01-23T14:10:07.360 に答える
0

まず、マニフェストファイルで、この部分を以下のように変更します。

<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" />

なぜこの部分をブロックしたのですか?この部分を今すぐアクティブにしてください。

@@@

次に、 main.xmlを以下のように変更してください。レイアウトファイル名が「main.xml」であるか「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"
  class="com.google.android.gms.maps.SupportMapFragment"/>

上記のコードを使用する必要があります。マニフェストファイルで[android:minSdkVersion="8"]を設定したためです。main.xmlは、AndroidAPI12以降を対象とするアプリケーションで設定をテストする場合にのみ役立ちます。

@@@

第三に、 MainActivity、javaを以下のように変更してください。

public class MianActivity extends android.support.v4.app.FragmentActivity {

    private GoogleMap mMap;

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

    }

    @Override
    protected void onResume() {
        super.onResume();
        setUpMapIfNeeded();
    }

    private void setUpMapIfNeeded() {
        if (mMap == null) {
            mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
                    .getMap();
            if (mMap != null) {
                setUpMap();
            }
        }
    }

    private void setUpMap() {
        mMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Marker"));
    }
}

また、Eclipseでは、キーボードのCtrl + Shift + O(アルファベット)を押して「インポートの整理」を実行すると、いくつかのクラスが自動的にインポートされます。

上記の#1から#3までのこのコードは、新しいGoogle Maps APIバージョン2を使用して実際の携帯電話でGoogleマップを表示できるようにするための標準の基本コード形式です。このコードは、地図と地図上のマーカーを表示します。

@@@

4。最も重要なことは、プロジェクトに2つのライブラリを追加することです。1つはGoogle Playサービスライブラリで、もう1つはAndroid-support-v4です。

この2つのライブラリをプロジェクトに追加する方法については、次のドキュメントを参照してください:ここをクリックしてください

2つのライブラリを設定できない場合、実際の受話器で地図を表示することはできません

@@@

5 、 Eclipseのエミュレーターではなく、実際のデバイス(受話器)でプロジェクトを実行してみてください。エミュレータでGooglePlayサービスでサポートされている新しいGoogleMapsAPI v2を使用して地図を表示できないため、これはGoogleの公式ドキュメントです:ここをクリックしてください

@@@

実際の携帯電話にGoogleマップが表示されることを願っています。

于 2013-01-24T09:41:31.870 に答える
-1

コードにエラーはなく、エミュレータは端末から正常に動作しています

すごい !ただし、ウィンドウ > ビューの表示 > その他 > Android > Logcat !

アプリケーションはクラッシュしない可能性がありますが、マップ API はログにマップを表示できない理由を示しています。

あなたがうまくやったことを確認するために:

  • 新しい Google Map API を実装するために、Google は不完全なガイドをリリースしました。ここで見つけることができます。
  • Google Play 開発者サービスのセットアップが明確に説明されていないため、未完成と言いますが、ここでは説明しています
于 2013-01-24T10:01:46.323 に答える
-1

この設定があることを確認してください:

map.setMapType(GoogleMap.MAP_TYPE_TERRAIN);

またはあなたが望むどんなタイプ....

于 2013-09-28T05:26:21.487 に答える