简体   繁体   中英

Android 2.3.3 and google maps api v2 error starting activity

I have such activityclass code:

package com.pavel.exchanger;

import android.os.Bundle;
import android.app.Activity;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import android.support.v4.app.Fragment;


public class SearchExchangerActivity extends FragmentActivity   {
    static final LatLng HAMBURG = new LatLng(53.558, 9.927);
    static final LatLng KIEL = new LatLng(53.551, 9.993);
    private GoogleMap map;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_search_exchanger);

        map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
                .getMap();
            Marker hamburg = map.addMarker(new MarkerOptions().position(HAMBURG)
                .title("Hamburg"));
            Marker kiel = map.addMarker(new MarkerOptions()
                .position(KIEL)
                .title("Kiel")
                .snippet("Kiel is cool")
                .icon(BitmapDescriptorFactory
                    .fromResource(R.drawable.ic_launcher)));

            // Move the camera instantly to hamburg with a zoom of 15.
            map.moveCamera(CameraUpdateFactory.newLatLngZoom(HAMBURG, 15));

            // Zoom in, animating the camera.
            map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);
    }

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

}

and such layout:

<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=".SearchExchangerActivity" >

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

</RelativeLayout> 

and such manifest:

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

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

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="com.pavel.exchanger.permission.MAPS_RECEIVE" />
    <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" />

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.pavel.exchanger.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:name="com.pavel.exchanger.ExchangerListActivity"
            android:label="@string/title_activity_exchanger_list" >
        </activity>
        <activity
            android:name="com.pavel.exchanger.BankExchangersListActivity"
            android:label="@string/title_activity_bank_exchangers_list" >
        </activity>
        <activity
            android:name="com.pavel.exchanger.NbrbActivity"
            android:label="@string/title_activity_nbrb" >
        </activity>

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

        <activity
            android:name="com.pavel.exchanger.SearchExchangerActivity"
            android:label="@string/title_activity_search_exchanger" >
        </activity>
    </application>

</manifest>

but when i run my activity i get:

04-30 21:39:32.856: E/AndroidRuntime(435): FATAL EXCEPTION: main
04-30 21:39:32.856: E/AndroidRuntime(435): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.pavel.exchanger/com.pavel.exchanger.SearchExchangerActivity}: java.lang.NullPointerException
04-30 21:39:32.856: E/AndroidRuntime(435):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
04-30 21:39:32.856: E/AndroidRuntime(435):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
04-30 21:39:32.856: E/AndroidRuntime(435):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
04-30 21:39:32.856: E/AndroidRuntime(435):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
04-30 21:39:32.856: E/AndroidRuntime(435):  at android.os.Handler.dispatchMessage(Handler.java:99)
04-30 21:39:32.856: E/AndroidRuntime(435):  at android.os.Looper.loop(Looper.java:123)
04-30 21:39:32.856: E/AndroidRuntime(435):  at android.app.ActivityThread.main(ActivityThread.java:3683)
04-30 21:39:32.856: E/AndroidRuntime(435):  at java.lang.reflect.Method.invokeNative(Native Method)
04-30 21:39:32.856: E/AndroidRuntime(435):  at java.lang.reflect.Method.invoke(Method.java:507)
04-30 21:39:32.856: E/AndroidRuntime(435):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-30 21:39:32.856: E/AndroidRuntime(435):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-30 21:39:32.856: E/AndroidRuntime(435):  at dalvik.system.NativeStart.main(Native Method)
04-30 21:39:32.856: E/AndroidRuntime(435): Caused by: java.lang.NullPointerException
04-30 21:39:32.856: E/AndroidRuntime(435):  at com.pavel.exchanger.SearchExchangerActivity.onCreate(SearchExchangerActivity.java:29)
04-30 21:39:32.856: E/AndroidRuntime(435):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
04-30 21:39:32.856: E/AndroidRuntime(435):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
04-30 21:39:32.856: E/AndroidRuntime(435):  ... 11 more

all lib's and project (google play) are included....

But why i'm getting this error's? How can i see google map on 2.3.3???

Also if i do such code in activity (default):

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

in emulator i see that i need to install google play app....

How to run google maps api v2 on android 2.3.3???

Google Play services is not supported on the Android emulator — to develop using the APIs, you need to provide a development device such as an Android phone or tablet.

The above quote from http://developer.android.com/google/play-services/setup.html .

I suggest you run your app on your device.

EDIT:

If you are targeting an application earlier than API level 12, you can access the same functionality through the SupportMapFragment class. You will also have to include the Support Library.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM