简体   繁体   中英

Android Google Maps Fragment crashes

I have embedded Google Maps V2 in my App, as the Google Tutorial says.

I get the following errors, when switching to the map fragment.

03-08 12:52:01.600: E/AndroidRuntime(30314):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2105)

03-08 12:52:01.600: E/AndroidRuntime(30314): FATAL EXCEPTION: main

03-08 12:52:01.600: E/AndroidRuntime(30314): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{de.arvidg.exampleactionbartabs/de.arvidg.exampleactionbartabs.StartActivity}: 
java.lang.ClassNotFoundException: de.arvidg.exampleactionbartabs.StartActivity

Heres the source code

package de.arvidg.exampleactionbartabs;

import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.maps.MapActivity;

import data.Device;
import data.Mission;
import de.arvidg.exampleactionbartabs.R;
import logic.FetchData;
import android.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;

public class MapFrag extends MapFragment {

    protected FetchData thread;
    protected Device device;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        final View lView = inflater.inflate(R.layout.map, container,
                false);

        return lView;

    }

    public void setDumb() {

    }

    public Device getDevice() {
        return device;
    }

    public void setDevice(Device device) {
        this.device = device;
    }

}


            <?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"
             class="com.google.android.gms.maps.SupportMapFragment"/>

My Manifest

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

    <uses-sdk android:minSdkVersion="14" />

    <permission
        android:name="de.arvidg.exampleactionbartabs.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

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

    <uses-permission android:name="de.arvidg.exampleactionbartabs.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" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".StartActivity"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.Holo" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".MapFrag"
            android:label="Map"
            android:theme="@android:style/Theme.Holo" >
            <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="removed" />

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

</manifest>

change

android:name="com.google.android.gms.maps.MapFragment"/> to

android:name="com.google.android.gms.maps.SupportMapFragment"/> in activity_main.xml

and change

public class MainActivity extends Activity

to public class MainActivity extends FragmentActivity in MainActivity.java

these two fixes worked for me.

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