2013-03-27 3 views
-1

Я стараюсь следить за документами для работы с API карт google, но это не работает.offline google map android

Мой Manifest

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.example.gogplemap" 
     android:versionCode="1" 
     android:versionName="1.0" > 

     <uses-sdk 
      android:minSdkVersion="8" 
      android:targetSdkVersion="17" /> 
     <permission 
      android:name="com.example.gogplemap.GOOGLEMAP" 
      android:protectionLevel="signature" 
      ></permission> 
     <uses-permission android:name="com.example.gogplemap.GoogleMap"/> 
     <application 
      android:allowBackup="true" 
      android:icon="@drawable/ic_launcher" 
      android:label="@string/app_name" 
      android:theme="@style/AppTheme" > 
      <activity 
       android:name="com.example.gogplemap.GoogleMap" 
       android:label="@string/app_name" > 
       <intent-filter> 
        <action android:name="android.intent.action.MAIN" /> 

        <category android:name="android.intent.category.LAUNCHER" /> 
       </intent-filter> 
      </activity> 
      <meta-data 
     android:name="com.google.android.gms.maps.MapFragment" 
     android:value="AIzaSyBPQPMrlJk-Ft48z0CWvpWBRcLyrIJJ4X4"/>  
     </application> 

    </manifest> 

Мой макет activity_google_map.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"/> 

Мой метод setcontentView в GoogleMap.java

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_google_map); 
    } 

Большое спасибо

+1

Вы получаете любую ошибку !!! – Janmejoy

+0

Я думаю, что это моя ошибка, которую я получил на консоли. 03-27 02: 01: 42.384: E/AndroidRuntime (1075): Caused by: android.view.InflateException: двоичная строка XML-файла # 2: ошибка раздувания фрагмента класса – 2013-03-27 09:11:06

+0

попробуйте мой ответ, он будет работать для вас! – Janmejoy

ответ

0

тр y нравится так: он будет работать для вас!

Планировка:

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

активность:

import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 

import com.google.android.gms.maps.SupportMapFragment; 

public class MainActivity extends FragmentActivity { 

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

     SupportMapFragment fragment = new SupportMapFragment(); 
     getSupportFragmentManager().beginTransaction() 
       .add(android.R.id.content, fragment).commit(); 
    } 
} 

Manifest:

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

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

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

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

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.example.androidmapview.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> 
     <meta-data 
    android:name="com.google.android.maps.v2.API_KEY" 
    android:value="*********************************uw"></meta-data> 
    </application> 

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

У меня установлены сервисы Google Play, но я не могу импортировать класс com.google.android.gms.maps.SupportMapFragment; – 2013-04-02 05:07:06

+0

@ VanSacPham вы можете сделать это после того, как вы добавите библиотеку игр Google в свой проект! – Janmejoy

0

Я вижу несколько ошибок с тем, что вы делали до сих пор:

Прежде всего, если ваш минимальный SDK - V8, тогда вы должны использовать SupportMapFragment и FragmentActivity объектов вместо MapFragment и Activity. Конечно, вам нужно добавить ссылку в google_support-v4 библиотеку вашего проекта, а также, так что для вас карта XML-файл, вы должны написать:

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

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

2. Во-вторых, это выглядит, как вы определили вы ключ неправильный путь вместо:

<meta-data 
    android:name="com.google.android.gms.maps.MapFragment" 
    android:value="AIzaSyBPQPMrlJk-Ft48z0CWvpWBRcLyrIJJ4X4"/> 

вы должны написать:

 <meta-data 
     android:name="com.google.android.maps.v2.API_KEY" 
     android:value="AIzaSyBPQPMrlJk-Ft48z0CWvpWBRcLyrIJJ4X4" /> 

3. Далее, разрешение вы используете неверно, вместо:

<permission 
     android:name="com.example.gogplemap.GOOGLEMAP" 
     android:protectionLevel="signature" 
     ></permission> 
    <uses-permission android:name="com.example.gogplemap.GoogleMap"/> 

добавить следующее:

<permission android:name="your.application.package.permission.MAPS_RECEIVE" android:protectionLevel="signature"/> 
<uses-permission android:name="your.application.package.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" /> 

не забудьте поставить пакет приложений вместо «your.application.package» строка в первых двух разрешениях, "com.example.gogplemap" в вашем случае.

Вы можете получить более подробную информацию в блоге я написал именно на эту тему:

Google Maps API V2