简体   繁体   中英

Setting up Google Maps v2 Error

When trying to set up Google Maps v2, I keep getting

Unable to resolve superclass of Lcom/alpha/dealtap/Map; (40)

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.alpha.dealtap/com.alpha.dealtap.Map}: java.lang.ClassNotFoundException: com.alpha.dealtap.Map in loaderdalvik. loaderdalvik.system.PathClassLoader[/system/framework/com.google.android.maps.jar:/data/app/com.alpha.dealtap-1.apk

Manifest

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

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

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

<uses-permission android:name="dealtap.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<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" />

<!-- <uses-permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE"/> -->


<!-- This might be the problem......The Google code produces an error -->
<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true" />

<application
    android:allowBackup="true"
    android:icon="@drawable/dealtap_text"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar" >
    <uses-library android:name="com.google.android.maps" />

    <activity
        android:name="com.alpha.dealtap.Main"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="com.alpha.dealtap.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.alpha.dealtap.Search_Page"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="com.alpha.dealtap.SEARCH_PAGE" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.alpha.dealtap.DealPage"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="com.alpha.dealtap.DEALPAGE" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.alpha.dealtap.StorePage"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="com.alpha.dealtap.STOREPAGE" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.alpha.dealtap.Map"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="com.alpha.dealtap.MAP" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.alpha.dealtap.TapDeal"
        android:label="TapDeal"
        android:windowSoftInputMode="stateHidden" >
        <intent-filter>
            <action android:name="com.alpha.dealtap.TAPDEAL" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="Took it out for privacy" />
</application>

</manifest>

Map.Java

package com.alpha.dealtap;

import com.alpha.dealtap.R;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;

public class Map extends FragmentActivity {

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

}
}

Map.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/white" >

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

I've followed the Google dev process and a couple of tutorials but haven't found the answer

Thanks!

New LogCat

06-09 14:11:30.552: E/AndroidRuntime(11833): FATAL EXCEPTION: main 06-09 14:11:30.552: E/AndroidRuntime(11833): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.alpha.dealtap/com.alpha.dealtap.Map}: android.view.InflateException: Binary XML file line #7: Error inflating class fragment 06-09 14:11:30.552: E/AndroidRuntime(11833): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1696) 06-09 14:11:30.552: E/AndroidRuntime(11833): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1716) 06-09 14:11:30.552: E/AndroidRuntime(11833): at android.app.ActivityThread.access$1500(ActivityThread.java:124) 06-09 14:11:30.552: E/AndroidRuntime(11833): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:968) 06-09 14:11:30.552: E/AndroidRuntime(11833): at android.os.Handler.dispatchMessage(Handler.java:99) 06-09 14:11:30.552: E/AndroidRuntime(11833): at android.os.Looper.loop(Looper.java:130) 06-09 14:11:30.552: E/AndroidRu ntime(11833): at android.app.ActivityThread.main(ActivityThread.java:3806) 06-09 14:11:30.552: E/AndroidRuntime(11833): at java.lang.reflect.Method.invokeNative(Native Method) 06-09 14:11:30.552: E/AndroidRuntime(11833): at java.lang.reflect.Method.invoke(Method.java:507) 06-09 14:11:30.552: E/AndroidRuntime(11833): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 06-09 14:11:30.552: E/AndroidRuntime(11833): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 06-09 14:11:30.552: E/AndroidRuntime(11833): at dalvik.system.NativeStart.main(Native Method) 06-09 14:11:30.552: E/AndroidRuntime(11833): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class fragment 06-09 14:11:30.552: E/AndroidRuntime(11833): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:587) 06-09 14:11:30.552: E/AndroidRuntime(11833): at android.view.LayoutInflater.rInflate(LayoutInflater.java:623) 06-09 14:11:30.552: E/An droidRuntime(11833): at android.view.LayoutInflater.inflate(LayoutInflater.java:408) 06-09 14:11:30.552: E/AndroidRuntime(11833): at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 06-09 14:11:30.552: E/AndroidRuntime(11833): at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 06-09 14:11:30.552: E/AndroidRuntime(11833): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:256) 06-09 14:11:30.552: E/AndroidRuntime(11833): at android.app.Activity.setContentView(Activity.java:1703) 06-09 14:11:30.552: E/AndroidRuntime(11833): at com.alpha.dealtap.Map.onCreate(Map.java:13) 06-09 14:11:30.552: E/AndroidRuntime(11833): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 06-09 14:11:30.552: E/AndroidRuntime(11833): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1660) 06-09 14:11:30.552: E/AndroidRuntime(11833): ... 11 more 06-09 14:11:30.552: E/AndroidRuntime(11833): Caused by: android.sup port.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 06-09 14:11:30.552: E/AndroidRuntime(11833): at android.support.v4.app.Fragment.instantiate(Fragment.java:401) 06-09 14:11:30.552: E/AndroidRuntime(11833): at android.support.v4.app.Fragment.instantiate(Fragment.java:369) 06-09 14:11:30.552: E/AndroidRuntime(11833): at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:272) 06-09 14:11:30.552: E/AndroidRuntime(11833): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563) 06-09 14:11:30.552: E/AndroidRuntime(11833): ... 20 more 06-09 14:11:30.552: E/AndroidRuntime(11833): Caused by: java.lang.ClassNotFoundException: com.google.android.gms.maps.SupportMapFragment in loader dalvik.system.PathClassLoader[/data/app/com.alpha.dealtap-2.apk] 06-09 14:11:30.552: E/AndroidRuntime(11833): at dalvik .system.PathClassLoader.findClass(PathClassLoader.java:240) 06-09 14:11:30.552: E/AndroidRuntime(11833): at java.lang.ClassLoader.loadClass(ClassLoader.java:551) 06-09 14:11:30.552: E/AndroidRuntime(11833): at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 06-09 14:11:30.552: E/AndroidRuntime(11833): at android.support.v4.app.Fragment.instantiate(Fragment.java:391)

Step #1: Get rid of <uses-library android:name="com.google.android.maps" /> , as that is not used by Maps V2.

Step #2: If you are on the R22 (or higher) version of the ADT plugin for Eclipse, be sure to fix your build path .

If those do not help, make sure that you have properly attached the Play Services Android library project to your project. For example, if you manually modified your build path (beyond what Step #2 calls for), that wasn't the right way to attach the Play Services Android library project.

Add in your fragment attribute android:name="com.google.android.gms.maps.SupportMapFragment" Add full package name in your Manifest in this permission(missing com.): "

<uses-permission android:name="dealtap.permission.MAPS_RECEIVE /> 

Add google-play-services.jar from extras to your libs, regardless of added library project you already have.

And most important, add in your Activity:

GoogleMap map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
            .getMap();

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