2013-05-16 3 views
0

В настоящее время я работаю над Android-приложением, которое должно отображать карту с местоположением на ней с загрузкой помеченных фотографий в указанном месте. В течение последних полутора дней я боролся за то, чтобы работать с API Google, и теперь, когда ошибки для них (вроде бы) исчезли после импорта проекта API google play в Eclipse (согласно ссылке google), я теперь получаю ClassDefNotFoundException на моих кнопках OnClick. Это произошло не 10 минут назад, прежде чем я обратился к проекту API.ClassDefNotFoundException - но он работал нормально вплоть до 10 минут назад

Мне НЕОБХОДИМО решить эту проблему сегодня, поэтому любая помощь, которая может быть предоставлена, действительно будет оценена по достоинству.

Вот скриншот экрана отладки (и, как вы видите, класс, который отсутствует, поставляется рядом с ним).

http://prntscr.com/155x4a

Это происходит только при использовании этой одной кнопки, все остальные кнопки отлично работает.

GMapActivity.class

package com.pragsys.android.gps; 

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

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

public class GMapActivity extends FragmentActivity { 

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

     SupportMapFragment frag = new SupportMapFragment(); 
     getSupportFragmentManager().beginTransaction().add(android.R.id.content, frag).commit(); 
    } 

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

AndroidManifest.xml

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

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

    <permission 
     android:name="com.pragsys.android.gps.permission.MAPS_RECEIVE" 
     android:protectionLevel="signature" /> 

    <uses-permission android:name="com.pragsys.android.gps.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-feature 
     android:glEsVersion="0x00020000" 
     android:required="true" /> 

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

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

     <activity 
      android:name="com.pragsys.android.gps.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=".TakePhotoActivity" 
      android:label="@string/title_activity_take_photo" > 
     </activity> 
     <activity 
      android:name=".PhotoOverviewActivity" 
      android:label="@string/title_activity_photo_overview" > 
     </activity> 
     <activity 
      android:name=".PhotoGalleryActivity" 
      android:label="@string/title_activity_photo_gallery" > 
     </activity> 
     <activity 
      android:name=".PhotoUploadedActivity" 
      android:label="@string/title_activity_photo_uploaded" > 
     </activity> 
     <activity 
      android:name=".AboutActivity" 
      android:label="@string/title_activity_about" > 
     </activity> 

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

     <activity 
      android:name=".GMapActivity" 
      android:label="@string/title_activity_gmap" > 
     </activity> 
    </application> 

</manifest> 

layout.xml

<fragment xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/map" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:name="com.google.android.gms.maps.MapFragment"/> 
+0

Вы ссылаетесь на библиотеку сервисов google play? – Raghunandan

+0

Обычно NoClassDefFoundError означает проблему с тем, как ваш проект настроен в Eclipse, а не в вашем коде. Я бы дважды проверял, как настроены ваши библиотеки, и попробуйте перезапустить eclipse и/или обновить проект (что вы можете сделать, выделив в проводнике проекта и нажав f5) –

+0

logcat поможет – mihail

ответ

0

-cue райское fanfare- ОК, так что я думаю, что мне удалось решить проблему просто путем изменения

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

в

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

Это будет учить меня для просто слепо копировать-вставки из ссылок. EDIT: И для работы до 3 часов ночи.

Смежные вопросы