谷歌地图API第2不工作 [英] Google Maps API v2 not working

查看:120
本文介绍了谷歌地图API第2不工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想建立使用谷歌地图API第2版的应用程序,但事情是,应用程序一直给我力量关闭虽然我也跟着所需的所有指令。

I am trying to build an application using Google Maps API v2 but the thing is, the application keeps giving me force closes although i followed all the required instructions.

下面是Android的一部分

Here is the android part

import android.support.v4.app.FragmentActivity;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;

public class GPSonMap extends FragmentActivity{

 MapView map;
 MapController controller;
 LocationManager locationManager;
 LocationListener listener;
 PendingIntent pendingIntent ;
 Criteria criteria;
 MapOverlay overlay;


@Override
public void onCreate(Bundle onsaved)
{
    super.onCreate(onsaved);
    setContentView(R.layout.map);
    Log.d("", "entered");


    map = (MapView)findViewById(R.id.mapView);
    }

和这里是XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MapsActivity" >

<fragment

    class="com.google.android.gms.maps.SupportMapFragment"
    android:id="@+id/mapView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
/>

</RelativeLayout>

这是我的清单

and this is my Manifest

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

        <uses-sdk
            android:minSdkVersion="14"
            android:targetSdkVersion="17" />
      <!--   <permission
              android:name="com.example.example.permission.MAPS_RECEIVE"
              android:protectionLevel="signature"/>
            <uses-permission android:name="com.bachelor.bond.permission.MAPS_RECEIVE"/>. -->

           <uses-permission android:name="android.permission.INTERNET" />
         <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
        <permission android:name="com.example.example.permission.C2D_MESSAGE" android:protectionLevel="signature" />
    <uses-permission android:name="com.example.example.permission.C2D_MESSAGE" /> 

    <!-- App receives GCM messages. -->
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
    <!-- GCM connects to Google Services. -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
        <uses-permission android:name="android.permission.READ_PHONE_STATE"/> 
    <!-- GCM requires a Google account. -->
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <!-- Keeps the processor from sleeping when a message is received. -->
    <uses-permission android:name="android.permission.WAKE_LOCK"
         />
    <uses-permission android:name="com.example.example.permission.MAPS_RECEIVE"/>
    <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" />  
    <!-- Permission to vibrate -->
        <uses-permission android:name="android.permission.VIBRATE"/>
        <uses-permission android:name = "android.permission.ACCESS_FINE_LOCATION"/>

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

        <uses-feature 
        android:glEsVersion="0x00020000" 
        android:required="true"/>
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name">
            <uses-library android:name="com.google.android.maps" />
             <activity
                android:name=".GPSonMap"
                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" />
             <intent-filter>
        <action android:name="com.google.android.c2dm.intent.RECEIVE" />
        <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
        <category android:name="com.example.example" />
      </intent-filter>
              <receiver android:name="com.google.android.gcm.GCMBroadcastReceiver" 
                 android:permission="com.google.android.c2dm.permission.SEND" >

    </receiver>
     <service android:name=".GCMIntentService" />
     <activity android:name="Login"></activity>

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

        </application>

    </manifest>

和日志猫输出

02-15 00:42:35.257: E/AndroidRuntime(2693): FATAL EXCEPTION: main
02-15 00:42:35.257: E/AndroidRuntime(2693): java.lang.RuntimeException: Unable to start         activity ComponentInfo{com.bachelor.bond/com.dxample.example.GPSonMap}:     android.view.InflateException: Binary XML file line #7: Error inflating class fragment
02-15 00:42:35.257: E/AndroidRuntime(2693):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
02-15 00:42:35.257: E/AndroidRuntime(2693):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
02-15 00:42:35.257: E/AndroidRuntime(2693):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
02-15 00:42:35.257: E/AndroidRuntime(2693):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
02-15 00:42:35.257: E/AndroidRuntime(2693):     at android.os.Handler.dispatchMessage(Handler.java:99)
02-15 00:42:35.257: E/AndroidRuntime(2693):     at android.os.Looper.loop(Looper.java:137)
02-15 00:42:35.257: E/AndroidRuntime(2693):     at android.app.ActivityThread.main(ActivityThread.java:5039)
02-15 00:42:35.257: E/AndroidRuntime(2693):     at java.lang.reflect.Method.invokeNative(Native Method)
02-15 00:42:35.257: E/AndroidRuntime(2693):     at java.lang.reflect.Method.invoke(Method.java:511)
02-15 00:42:35.257: E/AndroidRuntime(2693):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
02-15 00:42:35.257: E/AndroidRuntime(2693):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
02-15 00:42:35.257: E/AndroidRuntime(2693):     at dalvik.system.NativeStart.main(Native Method)
02-15 00:42:35.257: E/AndroidRuntime(2693): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class fragment
02-15 00:42:35.257: E/AndroidRuntime(2693):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
02-15 00:42:35.257: E/AndroidRuntime(2693):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
02-15 00:42:35.257: E/AndroidRuntime(2693):     at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
02-15 00:42:35.257: E/AndroidRuntime(2693):     at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
02-15 00:42:35.257: E/AndroidRuntime(2693):     at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
02-15 00:42:35.257: E/AndroidRuntime(2693):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270)
02-15 00:42:35.257: E/AndroidRuntime(2693):     at android.app.Activity.setContentView(Activity.java:1881)
02-15 00:42:35.257: E/AndroidRuntime(2693):     at com.bachelor.bond.GPSonMap.onCreate(GPSonMap.java:54)
02-15 00:42:35.257: E/AndroidRuntime(2693):     at android.app.Activity.performCreate(Activity.java:5104)
02-15 00:42:35.257: E/AndroidRuntime(2693):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
02-15 00:42:35.257: E/AndroidRuntime(2693):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
02-15 00:42:35.257: E/AndroidRuntime(2693):     ... 11 more
02-15 00:42:35.257: E/AndroidRuntime(2693): Caused by:         android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment     com.google.android.gms.maps.SupportMapFragment: make sure class name exists, is public, and     has an empty constructor that is public
02-15 00:42:35.257: E/AndroidRuntime(2693):     at android.support.v4.app.Fragment.instantiate(Fragment.java:401)
02-15 00:42:35.257: E/AndroidRuntime(2693):     at android.support.v4.app.Fragment.instantiate(Fragment.java:369)
02-15 00:42:35.257: E/AndroidRuntime(2693):     at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:272)
02-15 00:42:35.257: E/AndroidRuntime(2693):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:676)
02-15 00:42:35.257: E/AndroidRuntime(2693):     ... 21 more
02-15 00:42:35.257: E/AndroidRuntime(2693): Caused by: java.lang.ClassNotFoundException:     Didn't find class "com.google.android.gms.maps.SupportMapFragment" on path:     /system/framework/com.google.android.maps.jar:/data/app/com.bachelor.bond-1.apk
02-15 00:42:35.257: E/AndroidRuntime(2693):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65)
02-15 00:42:35.257: E/AndroidRuntime(2693):     at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
02-15 00:42:35.257: E/AndroidRuntime(2693):     at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
02-15 00:42:35.257: E/AndroidRuntime(2693):     at android.support.v4.app.Fragment.instantiate(Fragment.java:391)
02-15 00:42:35.257: E/AndroidRuntime(2693):     ... 24 more

另外一个问题,我面对的是,当我尝试
 进口com.google.android.gms.maps.MapFragment; 它提供了一个错误,它不承认一个包名称为 com.google.android.gms ,所以我不能甚至使用 GoogleMap的 MapFragment 为例。

One other problem I face, is that when i try to
import com.google.android.gms.maps.MapFragment; it gives an error that it doesnt recognise a package name to be com.google.android.gms so i cant even use the GoogleMapor MapFragment for example.

因此​​,没有人有任何解决这些问题的2?

So does anyone have any solution to those 2 problems?

推荐答案

presumably,您没有添加引用了谷歌播放服务库项目,您的应用程序的项目。请参见的谷歌播放服务SDK文档,特别是题为部分要设置一个项目使用谷歌Play业务的SDK。

Presumably, you have not added a reference to the Google Play Services library project to your app project. See the Google Play Services SDK documentation, specifically the section entitled "To set up a project to use the Google Play services SDK".

这篇关于谷歌地图API第2不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆