2013-07-05 2 views
0

시작하기 전에 저는 주로 자바를 사용하는 데 익숙합니다. 저는 앱이 플래시와 함께 만들어 지지만 누군가가 일식이 더 좋다고 말했기 때문에 초보자입니다. android.Goolgle지도가 내 앱에서지도를로드하지 않습니다

Google지도를 사용하여 기본 탐색 스타일 앱을 제작하려고합니다. 나는 무수한 튜토리얼을 따랐고 몇 시간 씩 인터넷을 통해 문제를 풀어 봤지만 아무 것도 찾지 못했다.

문제는지도가로드되지 않는다는 것입니다. 단지 회색 사각형의 격자를 보여줍니다. 나는 어떤 오류도 볼 수 없지만 나는 볼 곳이 없다. 내가 여기에 대한 수많은 튜토리얼과 주제로 내 인증서 및 디버그 키 저장소로 Google지도 용 API 키를 생성했습니다. Link 1

이 방법을 SHA1 키에 사용했습니다. 에뮬레이터, 장치 및 apk 파일 내보내기 및 장치에 직접 설치 디버깅을 시도했습니다.

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.route1designs.tenttom" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="11" 
     android:targetSdkVersion="17" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 
    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@android:style/Theme.NoTitleBar.Fullscreen" > 
     <uses-library android:name="com.google.android.maps"/> 
     <activity 
      android:name="com.route1designs.tenttom.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> 
     <activity android:label="mainmenu" android:name="MainMenu"></activity> 
     <activity android:label="settings" android:name="Settings"></activity> 

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

     <meta-data 
    android:name="com.route1designs.tenttom.AIzaSyCAL-boLUdqDM_fLwlewYKNWHReXYVoEdU" 
    android:value="AIzaSyCAL-boLUdqDM_fLwlewYKNWHReXYVoEdU"/> 

    </application> 

</manifest> 

내에는 mainMenu (지도 활동) : 여기

내 매니페스트 파일입니다

package com.route1designs.tenttom; 

import android.app.Activity; 
import android.app.AlertDialog; 
import android.content.Context; 
import android.content.DialogInterface; 
import android.content.Intent; 
import android.content.SharedPreferences; 
import android.location.LocationListener; 
import android.location.LocationManager; 
import android.net.ConnectivityManager; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.View; 

import com.google.android.maps.GeoPoint; 
import com.google.android.maps.MapActivity; 
import com.google.android.maps.MapController; 
import com.google.android.maps.MapView; 


import com.route1designs.dbfunctions.DatabaseHandler; 
import com.route1designs.dbfunctions.Location; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 
import android.database.sqlite.SQLiteOpenHelper; 

import java.util.List; 

import org.w3c.dom.Text; 

import android.util.Log; 
import android.widget.TextView; 

public class MainMenu extends MapActivity { 

    //adds page vars for default page 
    private MapView mapView; 
    private MapController mc; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

      setContentView(R.layout.main_menu); 
      mapView = (MapView) findViewById(R.id.start_map); 

      mc = mapView.getController(); 

      String coordinates[] = {"30", "71"}; 
      double lat = Double.parseDouble(coordinates[0]); 
      double lng = Double.parseDouble(coordinates[1]); 

      GeoPoint p = new GeoPoint(
      (int) (lat * 1E6), 
      (int) (lng * 1E6)); 

      mc.animateTo(p); 
      mc.setZoom(7); 
      mapView.invalidate(); 


      //build vars 
      currentLocBG = findViewById(R.id.currentLoc); 
      currentLoc = (TextView) findViewById(R.id.currentLocText); 

    } 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     //getMenuInflater().inflate(R.menu.main, menu); 
     onMenuPressed(); 
     return true; 

    } 
    @Override 
    protected boolean isRouteDisplayed() { 
     // TODO Auto-generated method stub 
     return false; 
    }  

} 

그리고 이것은 내 XML 파일입니다

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <com.google.android.maps.MapView 
     android:id="@+id/start_map" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_marginTop="53dp" 
     android:clickable="true" 
     android:enabled="true" 
     android:orientation="vertical" 
     android:apiKey="AIzaSyBp9PQhSJxHiJcRm6wETHbZr-eXcICanvI"/> 
</RelativeLayout> 

어떤 도움이 크게 될 것 완전히 붙어있는 것으로 평가되었습니다. 할 수있는 일이 없다면 Google지도를 플래시 전문가 또는 작성자에게 통합하는 것이 더 쉽습니다.

+0

여러분이 map api v1을 사용하고 계시겠습니까? map api v2 사용 – Raghunandan

+0

어떻게 전환합니까? –

+0

map api v1을 사용하고 있습니다. 여기에 나온 단계를 따르십시오. map api v2를 사용하십시오. https://developers.google.com/maps/documentation/android/start – Raghunandan

답변

0

에뮬레이터 또는 실제 장치에서 실행 중이십니까? Google Maps API v2는 대상 "Google API"로 생성 된 에뮬레이터에서 실행되지 않습니다. 이는 알려진 문제입니다. 해결 방법은 Running Google Maps v2 on the Android emulator을 참조하십시오.

+0

둘 다 실행 중이며 위의 링크를 사용하여 API V2를 사용했지만 여전히 실패했습니다 –

+0

[Google 시작 안내서] (https://developers.google.com/maps/documentation/android)로 시작하는 것이 좋습니다./start) 그리고 예제를 통해 얻을 수있는 거리를 확인하십시오. 지도가 여전히 표시되지 않으면 LogCat 출력을 살펴 보는 것이 도움이됩니다. –

+0

그래, 모든 문서가 당신에게 알 필요가있는 모든 것을 알려주는 문제를 해결했습니다. 모두에게 감사드립니다. –