Java 不幸的是,在我为Android应用程序将Google Maps v1更新为Google Maps v2后,Google Maps没有加载

Java 不幸的是,在我为Android应用程序将Google Maps v1更新为Google Maps v2后,Google Maps没有加载,java,Java,注:1。当我使用mapsv2作为一个独立的应用程序时,它可以正常工作。但是当我使用MapsV2时,这是我项目的一个子活动,会得到下面提到的错误日志。 2.我的应用程序在MapV1上运行良好,但我想将我的应用程序从MapV1升级到V2 添加了以下提到的代码以调用映射活动: 尝试 { Class.forNamecom.google.android.gms.maps.SupportMapFragment;Intent n=newintentinformation.this,Gmaps.Class;

注:1。当我使用mapsv2作为一个独立的应用程序时,它可以正常工作。但是当我使用MapsV2时,这是我项目的一个子活动,会得到下面提到的错误日志。 2.我的应用程序在MapV1上运行良好,但我想将我的应用程序从MapV1升级到V2

添加了以下提到的代码以调用映射活动: 尝试 { Class.forNamecom.google.android.gms.maps.SupportMapFragment;Intent n=newintentinformation.this,Gmaps.Class; n、 设置标记。标记活动,重新排序到前端;startActivityn; }

按照以下步骤将Google Maps v1升级到v2

将google-play-services.jar添加到我的项目中。 在我的Android SDK安装文件夹的extras文件夹下添加了名为google-play-services_lib的库 我的Android项目。 更新了map.xml,如下链接所示 更新了Androidmanifiest.xml,如下链接所示

我的地图活动类

public class Information extends Activity
{
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        Crittercism.init(getApplicationContext(), "CRITTERCISM_APP_ID");
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);     
        playInformation();        

    }//oncreate
    private void playInformation(){
        try{
                Class.forName("com.google.android.gms.maps.SupportMapFragment");
                Intent n=new Intent(Information.this,Gmaps.class);
                n.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
                startActivity(n);
            }catch(Exception e){
                e.printStackTrace();
                setContentView(R.layout.error);
                TextView tv = (TextView)findViewById(R.id.txtError);
                tv.setText("Maps Does Not Supported By This Device");
                tv.setTextSize(26);
            }
    }
}

public class Gmaps extends FragmentActivity {

    // Google Map
    private GoogleMap googleMap;

    private Marker marker;

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

        try {
            // Loading map
            initilizeMap();

            // Changing map type
            googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);

            // Showing / hiding your current location
            googleMap.setMyLocationEnabled(true);

            // Enable / Disable zooming controls
            googleMap.getUiSettings().setZoomControlsEnabled(false);

            // Enable / Disable my location button
            googleMap.getUiSettings().setMyLocationButtonEnabled(true);

            // Enable / Disable Compass icon
            googleMap.getUiSettings().setCompassEnabled(true);

            // Enable / Disable Rotate gesture
            googleMap.getUiSettings().setRotateGesturesEnabled(true);

            // Enable / Disable zooming functionality
            googleMap.getUiSettings().setZoomGesturesEnabled(true);

            double lat=12.9667; double lon=77.5667;

             // Adding a marker
            addMarker(googleMap, lat, lon);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

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

    /**
     * function to load map If map is not created it will create it for you
     * */
    private void initilizeMap() {
        if (googleMap == null) {
            //googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
             googleMap = ((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map)).getMap();

            // check if map is created successfully or not
            if (googleMap == null) {
                Toast.makeText(getApplicationContext(),
                        "Sorry! unable to create maps", Toast.LENGTH_SHORT).show();
            }
        }
    }

    public void addMarker(GoogleMap googleMap, double lat, double lon)
    {

        if (marker != null) {
            marker.remove();
        }

        // Adding a marker
        MarkerOptions myMarker = new MarkerOptions().position(
                new LatLng(lat, lon))
                .title("Hello Bengaluru ");

        // changing marker color
        myMarker.icon(BitmapDescriptorFactory
                .defaultMarker(BitmapDescriptorFactory.HUE_RED));

        marker = googleMap.addMarker(myMarker);

        // Move the camera to last position with a zoom level
        CameraPosition cameraPosition = new CameraPosition.Builder()
                    .target(new LatLng(lat, lon)).zoom(16).build();

        googleMap.animateCamera(CameraUpdateFactory
                    .newCameraPosition(cameraPosition));
    }
}
我正在使用地图作为我的应用程序的一个子活动,在实现上述代码后,我会在给定的错误日志下查看地图

********
11-10 20:03:42.659: W/dalvikvm(9654): Unable to resolve superclass of Lcom/google/android/gms/maps/SupportMapFragment; (168)
11-10 20:03:42.659: W/dalvikvm(9654): Link of class 'Lcom/google/android/gms/maps/SupportMapFragment;' failed
11-10 20:03:42.659: W/System.err(9654): java.lang.ClassNotFoundException: com.google.android.gms.maps.SupportMapFragment
11-10 20:03:42.659: W/System.err(9654): at java.lang.Class.classForName(Native Method)
11-10 20:03:42.659: W/System.err(9654): at java.lang.Class.forName(Class.java:217)
11-10 20:03:42.659: W/System.err(9654): at java.lang.Class.forName(Class.java:172)
11-10 20:03:42.669: W/System.err(9654): at com.example.myApp.Information.playInformation(Information.java:594)
11-10 20:03:42.669: W/System.err(9654): at com.example.myApp.Information.onCreate(Information.java:294)
11-10 20:03:42.669: W/System.err(9654): at android.app.Activity.performCreate(Activity.java:4470) 
11-10 20:03:42.669: W/System.err(9654): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053)
11-10 20:03:42.669: W/System.err(9654): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934)
11-10 20:03:42.669: W/System.err(9654): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)
11-10 20:03:42.669: W/System.err(9654): at android.app.ActivityThread.access$600(ActivityThread.java:128)
11-10 20:03:42.669: W/System.err(9654): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
11-10 20:03:42.669: W/System.err(9654): at android.os.Handler.dispatchMessage(Handler.java:99)
11-10 20:03:42.669: W/System.err(9654): at android.os.Looper.loop(Looper.java:137)
11-10 20:03:42.669: W/System.err(9654): at android.app.ActivityThread.main(ActivityThread.java:4517)
11-10 20:03:42.669: W/System.err(9654): at java.lang.reflect.Method.invokeNative(Native Method) 
11-10 20:03:42.669: W/System.err(9654): at java.lang.reflect.Method.invoke(Method.java:511)
11-10 20:03:42.669: W/System.err(9654): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
11-10 20:03:42.669: W/System.err(9654): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
11-10 20:03:42.669: W/System.err(9654): at dalvik.system.NativeStart.main(Native Method)
11-10 20:03:42.669: W/System.err(9654): Caused by: java.lang.NoClassDefFoundError: com/google/android/gms/maps/SupportMapFragment
11-10 20:03:42.679: W/System.err(9654): ... 19 more
11-10 20:03:42.679: W/System.err(9654): Caused by: java.lang.ClassNotFoundException: com.google.android.gms.maps.SupportMapFragment
11-10 20:03:42.679: W/System.err(9654): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
11-10 20:03:42.679: W/System.err(9654): at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
11-10 20:03:42.679: W/System.err(9654): at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
11-10 20:03:42.679: W/System.err(9654): ... 19 more****** 
------------------------------------------------------------------------**

在您的清单文件中添加以下权限,以便直接使用map API v2,因为这非常简单。

感谢您的快速响应。但我仍然面临着同样的问题,我更新了问题陈述,即当我使用Maps V2作为独立应用程序时,它工作正常。但是当我使用MapsV2作为我的项目的子活动时,会得到上面提到的错误日志。还请检查上面更新的问题陈述,我更新了将Maps V1升级到V2I所需的所有内容。我正在添加我的示例项目链接。请检查并帮助我解决我的问题。项目链接:
<uses-library android:name="com.google.android.maps"/>