谷歌地图Android API v2应用程序崩溃

时间:2013-08-28 23:57:08

标签: android map android-maps-v2

我正在尝试使用Android'Google Maps Android API v2'的示例代码。我没有错误地构建项目。但是,当我尝试在Everpad上运行应用程序时,应用程序会立即崩溃。

logcat输出:

08-30 17:12:42.620: E/dalvikvm(4352): Could not find class 'com.dvp.android.gallery.GPS', referenced from method com.dvp.android.gallery.Acceuil$5.onClick
08-30 17:12:47.670: E/InputDispatcher(3263): Motion event has invalid action code 0xa
08-30 17:12:47.760: E/InputDispatcher(3263): Motion event has invalid action code 0x9
08-30 17:12:47.760: E/InputDispatcher(3263): Motion event has invalid action code 0x7
08-30 17:12:47.850: E/AndroidRuntime(4352): FATAL EXCEPTION: main
08-30 17:12:47.850: E/AndroidRuntime(4352): java.lang.NoClassDefFoundError: com.dvp.android.gallery.GPS
08-30 17:12:47.850: E/AndroidRuntime(4352):     at com.dvp.android.gallery.Acceuil$5.onClick(Acceuil.java:57)

The Manifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.dvp.android.gallery"
      android:versionCode="1"
      android:versionName="1.0">
    <permission
            android:name="com.dvp.android.gallery.maps.permission.MAPS_RECEIVE"
            android:protectionLevel="signature" />
    <uses-feature
            android:glEsVersion="0x00020000"
            android:required="true"/>

    <application android:icon="@drawable/ic_bardo" android:label="@string/app_name">
        <activity android:name=".Acceuil"
                  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=".Objets" android:label="Objets">  </activity>
        <activity android:name=".GPS"
                  android:label="GPS">
        </activity>
        <activity android:name=".Detail" android:label="Detail"></activity>
        <activity
                android:name=".Galeries"
                android:label="Galeries"
                />
        <activity
                android:name=".Evennements"
                android:label="Evennements"/>
        <activity
                android:name=".Infos"
                android:label="Infos"/>
    </application>
    <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="AIzaSyA0HMTTGLqlYaq6jOuS0imbjt7GmUHyK0c"/>

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


    <uses-permission android:name="com.dvp.android.gallery.maps.permission.MAPS_RECEIVE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/>
    <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" />

</manifest> 

Java代码

package com.dvp.android.gallery;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;

import com.google.android.gms.maps.SupportMapFragment;


public class GPS extends FragmentActivity{

   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.gps);
       SupportMapFragment fragment = new SupportMapFragment();
       fragment.getFragmentManager().beginTransaction().add(android.R.id.content, fragment).commit();

    }


}

最后是XML:

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/map"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          class="com.google.android.gms.maps.SupportMapFragment"
/>

我用Google搜索,没有找到有关此例外的信息。我真的很困惑这个问题,不知道如何解决它。有谁知道如何解决它? 感谢。

2 个答案:

答案 0 :(得分:0)

您在Manifest文件中指定的软件包与您为其中的活动提供的软件包之间存在某种不匹配。

尝试改变:

 <activity
        android:name="in.wptrafficanalyzer.locationgooglemapv2demo.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=".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>

并且不要使用带有套接字的latter来编写一些软件包,而不是将软件包更改为在软件包部分中编写的:

 <permission
      android:name="in.wptrafficanalyzer.LocationGoogleMapV2Demo.permission.MAPS_RECEIVE"
      android:protectionLevel="signature"/>

<uses-permission android:name="in.wptrafficanalyzer.LocationGoogleMapV2Demo.permission.MAPS_RECEIVE"/>

答案 1 :(得分:0)

试试这个:

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

        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

您可以实施以下内容:

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

        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

        <activity
            android:name="com.gc.materialdesigndemo.ui.MainActivity"
            android:label="@string/app_name"
            android:screenOrientation="portrait" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
                <action android:name="br.com.informapa.MESSAGE" />

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